Go语言中文网 为您找到相关结果 290

golang 读写文件

1.读文件 package main import ( "bufio" "fmt" "io" "io/ioutil" "os" ) //读取文件需要经常进行错误检查,这个帮助方法可以精简下面的错误检查过程。 func check(e error) { if e != nil { panic(e) } } func main() { //也许大部分基本的文件读取任务是将文件内容读取到内存中。 dat, err := ioutil.ReadFile("/tmp/dat") check(err) fmt.Print(string(dat)) //你经常会想对于一个文件是怎么读并且读取到哪一部分进行更多的控制。对于这个任务,从使用 os.Open打开一个文件获取一个 os.File 值开始。 f, ...阅读全文

博文 2015-04-21 03:00:01 benlightning

【GoLang笔记】遍历map时的key随机化问题及解决方法

之前的一篇笔记曾分析过,Go的map在底层是用hashmap实现的。由于高效的hash函数肯定不是对key做顺序散列的,所以,与其它语言实现的hashmap类似,在使用Go语言map过程中,key-value的插入顺序与遍历map时key的访问顺序是不相同的。熟悉hashmap的同学对这个情况应该非常清楚。 所以,本文要提到的肯定不是这个,而是一个比较让人惊奇的情况,下面开始说明。 1. 通过range遍历map时,key的顺序被随机化 在golang 1.4版本中,借助关键字range对Go语言的map做遍历访问时,前后两轮遍历访问到的key的顺序居然是被随机化的! 这个现象在其它语言中是很少见的,比如C语言实现hashmap时,通常会用数组(即一段连续的内存空间)来存key,虽然key的...阅读全文

博文 2015-04-02 19:00:01 slvher

新手问题 go build 找不到 go source files

mac环境,在项目目录下 go build ,显示“can't load package: package .: no buildable Go source files in /Users/xxxx/Documents/goworkspace/test/calcproj” 项目目录:/Users/xxxx/Documents/goworkspace/test/calcproj 目录下有 bin /pkg/src目录 ,src下有calc.go (包含main函数) $ echo $GOPATH /Users/xxxx/Documents/goworkspace/test/calcproj/ go install 也是同样的问题,找不到 Go s...阅读全文

Centos 搭建golang环境,vim高亮go关键字设置

Centos 搭建golang环境,vim高亮go关键字设置 1:下载 https://golang.org/dl/ 下载 go1.4.1.linux-amd64.tar.gz ArchiveLinux64-bit 2:切换sudo权限解压到/usr/local/目录下 tar xzvf go1.3.linux-amd64.tar.gz -C /usr/local/ 3:返回普通用户权限 4:设置PATH vi ~/.bash_profile export GOROOT=/usr/local/go export GOBIN=$GOROOT/bin export GOPATH=$HOME/golang_git 这个设置为git go的库时的下载路径 PATH=$PATH:$GOBIN expo...阅读全文

博文 2015-01-22 23:00:01 ppppppppp2009

golang实现tcp接入服务器

接入服务器和后端业务服务其维持tcp连接,多个前端请求通过接入服务器访问后端业务服务器,接入服务器可以方便增加路由功能,维护多个业务服务器,根据消息ID路由到具体的业务服务器。 项目目录如下 simplelotus src lotus main.go lotuslib tcplotus.go test tcpclient.go tcpserver.go install install源码如下: #!/usr/bin/env bash if [ ! -f install ]; then echo 'install must be run within its container folder' 1>&2 exit 1 fi CURDIR=`pwd` OLDGOPATH="$GOPATH" ex...阅读全文

博文 2014-10-04 19:26:13 ciaos

Golang实现简单tcp服务器02 -- 实现echo服务器/客户端

用Golang实现 echo服务器/客户端 本节我们就从实现一个简单的echo的服务端/客户端来入手, 了解golang的实现tcp长连接服务器的具体细节. 首先, 我们先列一下**服务端的实现思路及步骤**:1. 创建一个套接字对象, 指定其IP以及端口.2. 开始监听套接字指定的端口.3. 如有新的客户端连接请求, 则建立一个goroutine, 在goroutine中, 读取客户端消息, 并转发回去, 直到客户端断开连接4. 主进程继续监听端口. 我们可以在实验环境的主文件夹中, 建立一个名为server.go的文件, 在其中编写服务器端程序代码服务端程序清单如下: server.go package main import ( "bufio" "fmt" "net" "time" )...阅读全文

博文 2015-06-02 23:00:16 victoriest

阿里云上Ubuntu14.04-64位安装Gogs

sudo apt-get update sudo apt-get upgrade sudo adduser gogs //创建用户 密码 ******* su gogs//切换到gogs用户 cd ~ //进入用户gogs根目录 sudo apt-get install git //安装git git --version //检查git是否安装成功 sudo apt-get install mysql-server //安装mysql数据库 账户:root 密码:******** mysql --version //检查mysql版本判断是否安装成功 //创建数据gogs mysql -u root -pmysql> SET GLOBAL storage_engine = 'InnoDB';...阅读全文

博文 2015-02-05 14:00:02 路峰

supervisor运行golang守护进程

最近在鼓捣golang守护进程的实现,无意发现了supervisor这个有意思的东西。supervisor是一个unix的系统进程管理软件,可以用它来管理apache、nginx等服务,若服务挂了可以让它们自动重启。当然也可以用来实现golang的守护进程,下面描述下具体实现。 安装supervisor 基于centos 6.4。 supervisor使用python编写的,可以用easy_install安装。centos上默认有python的运行环境,安装起来就非常简单了。 $ sudo yum install python-setuptools $ sudo easy_install supervisor 如果没有看到什么报错,那么就安装成功了,可以使用echo_supervisord_...阅读全文

博文 2015-07-17 03:00:00 cnsanshao

Go 编译过程分析(一) -- 编译脚本

http://blog.csdn.net/free2o/article/details/38417293 go 语言最近很火,与时俱进,我也看了看go 的语法。 看起来 go 还是不错的,有很多新的feature。 就下载了代码研究了一下。 go 的 src 目录下面存在三套编译文件: window 平台, 所有 bat 文件plan9 平台,所有 rc 文件unix 类平台,所有bash 文件 以 unix 编译文件为例, go 的编译入口时在 src/all.bash , 这是一个bash 脚步, 这个脚步只是简单的调用了 make.bash 在脚步结束之后,调用 dist banner 输出编译的信息。 [plain] view plaincopy set -e if [ ! -f m...阅读全文

博文 2015-04-30 15:00:26 working_brain

go 1.5.1性能提升巨大

之前有说过,我们的momo_worker项目是使用go编写的,当时是基于1.4.2这个版本,今天(2015年9月9日)google发布了go 1.5.1,之前因为go 1.5 bug太多就没有升级,这次升级了一下,试试看效果。1.4.2和1.5.1的具体对比就不贴了,大家有兴趣自行google吧,下面主要展示下go1.5.1的在我们生产环境下的性能提升。 momo_worker 通过上面3张图能看出,3点后cgo calls大幅下降,这应该是得益于go去掉了大量的c代码。gc、threads、file descriptor、memory都有大幅下降。 这里还体现不出go 1.5.1的性能有多少提升,不过已经能看出来,在系统资源的消耗上,1.5.1有了巨量的下降。 echo test 这里通过...阅读全文

博文 2015-09-09 19:56:58 LYY

Golang 获取用户 home 目录路径

os/user改进参考 os/user 一般情况下我们可以使用 os/user 包提供的 Current() 函数来获取用户信息: user, err := user.Current() if nil == err { return user.HomeDir, nil } 但这个方式交叉编译后不能完全跨平台,在 darwin 下需要 cgo 才能正常工作。 改进 为了解决这个问题,我们需要进行一点增强,在通过 os/user 获取失败时再通过环境变量、命令来获取: // Home returns the home directory for the executing user. // // This uses an OS-specific method for discovering th...阅读全文

博文 2015-04-05 11:21:30 88250

用golang编写简单的Echo Server

用golang编写简单的Echo Server 这段时间在看golang的网络编程方面的内容,网络知识很浅薄啊,很多东西还要不断的学习,很多也看不懂,今天先来一个简单的内容,用golang写一个简单的echo server。 TCP/IP协议 大家都知道TCP/IP协议簇是当今网络世界的事实标准协议,与其对应的是OSI的七层模型,对于这七层模型这里就不再赘述了,这里只是简单介绍一下TCP/IP的四层模型。 TCP/IP的四层模型最下面是一个物理层,上面是网络层,再往上就是传输层,最后是应用层了,分层的概念相信大家都之的,这样在不同层之间变化就是打包或者解包,简单来说就是加上头信息或者去掉头信息。 golang API golang的net包里面有很方便的API供我们使用,这个API主要可以划...阅读全文

博文 2014-10-04 19:26:06 wowzai

5分钟学习基于Go,go-microservice-template,Minke的微服务

【编者的话】本篇文章介绍了Go语言下构建微服务的例子,作者利用一个helloword讲解了如何使用他的微服务框架,该框架不仅包含了构建服务,还包括路由、请求验证、日志记录、测试、动态配置变更,最后将提供了将服务整合到Docker容器并持续集成。本文干货满满,虽然需要一些对Go语言的基础,但是这构建微服务的思路是通用的。 @Container容器技术大会将于6月4日在上海光大会展中心国际大酒店举办,来自携程、PPTV、蚂蚁金服、京东、浙江移动、海尔电器、唯品会、eBay、道富银行、麻袋理财、土豆网、阿里百川、点融网等公司的技术负责人将带来实践经验分享,3月21日之前购票只需238元,欢迎感兴趣的同学抢购。 介绍几周前我去参加一个零售环境下的技术会议,直到午饭时间都没人提及'Docker'或者'...阅读全文

博文 2016-03-25 11:19:45 Sonyfe25cp

golang的ssh包

git clone https://github.com/golang/crypto.git,复制到 golang.org/x/ 目录下。 常常用来建立ssh连接发送一条命令,但有时需要模拟ssh客户端功能,即直接连接上远程主机一直操作:(http://www.zhihu.com/question/30368538/answer/47835043) package main import ( "golang.org/x/crypto/ssh" "log" "os" ) func main() { ce := func(err error, msg string) { if err != nil { log.Fatalf("%s error: %v", msg, err) } } client...阅读全文

博文 2016-04-06 10:00:46 tianyajuanke

go语言exec包调用shell命令

工程中需要用到ffmpeg,想直接用exec包调用shell命令。本来以为很简单,结果折腾了一下午,最后查到了解决方案。 假如之前执行报错的语句为: cmd := exec.Command("echo", "'helloworld!'") out, err := cmd.Output() 那么改为: c := "echo hello world" cmd := exec.Command("sh", "-c", c) out, err := cmd.Output() 即可! 感谢万能的stack overflow reference: https://stackoverflow.com/questions/20437336/how-to-execute-system-command-in-go...阅读全文

博文 2016-08-18 17:00:03 yypnathan

Go项目的目录结构

项目目录结构如何组织,一般语言都是没有规定。但Go语言这方面做了规定,这样可以保持一致性,做到统一、规则化比较明确。 1、一般的,一个Go项目在GOPATH下,会有如下三个目录: |--bin |--pkg |--src 其中,bin存放编译后的可执行文件;pkg存放编译后的包文件;src存放项目源文件。 一般,bin和pkg目录可以不创建,go命令会自动创建(如 go install),只需要创建src目录即可。 对于pkg目录,曾经有人问:我把Go中的包放入pkg下面,怎么不行啊?他直接把Go包的源文件放入了pkg中。 这显然是不对的。pkg中的文件是Go编译生成的,而不是手动放进去的。(一般文件后缀.a) 对于src目录,存放源文件,Go中源文件以包(package)的形式组织。通常,...阅读全文

博文 2016-03-11 10:00:02 zsy

golang简单实现Websocket

首先获取websocket包, 在获取的时候好像需要下载什么什么hg的一个软件之后可以成功执行 go get code.google.com/p/go.net/websocket 步入正题 服务端: import ( "code.google.com/p/go.net/websocket" "fmt" "log" "net/http" ) func main() { fmt.Println("Start app") http.Handle("/", websocket.Handler(Echo)) if err := http.ListenAndServe(":4001", nil); err != nil { log.Fatal("ListenAndServe:", err) } } fu...阅读全文

博文 2016-03-04 03:00:06 u013701108

PHP和Golang使用Thrift1和Thrift2访问Hbase0.96.2(ubuntu12.04)

目录: 一、Thrift1和Thrift2的简要介绍 1) 写在前面 2) Thrift1和Thrift2的区别 二、Thrift0.9.2的安装 1) 安装依赖插件 2) Thrift0.9.2的编译 3) Thrift0.9.2编译后,配置成可执行文件 三、Hbase0.96.2的安装 1) Hbase的介绍 2) Hbase的安装 3) Hbase基于源码的Thrift生成接口文件 四、PHP和Golang使用Thrift1和Thrift2访问Hbase 1) PHP基于Thrift1访问Hbase 2) Golang基于Thrift2访问Hbase 五、常见问题 六、扩展阅读 目录: 一、Thrift1和Thrift2的简要介绍 1) 写在前面 从Hbase0.94.11开始有两套t...阅读全文

博文 2014-10-07 22:38:36 lion.net

GO语言练习:channel 工程实例

1、工程代码 2、编译及运行 1、工程目录结构 $ tree cgss cgss ├── cgss.go └── src ├── cg │ ├── centerclient.go │ ├── center.go │ └── player.go └── ipc ├── client.go ├── ipc_test.go └── server.go 1.1)主文件cgss.go 文件代码 1 package main 2 3 import ( 4 "bufio" 5 "fmt" 6 "os" 7 "strconv" 8 "strings" 9 10 "cg" 11 "ipc" 12 ) 13 14 var centerClient * cg.CenterClient 15 16 func sta...阅读全文

博文 2015-07-20 03:00:00 fengbohello

Echo框架Go 语言 Web 开发,新手快来学

地址: github.com/labstack/echo 官网: http://labstack.com/echo/ Echo 是个快速的 HTTP 路由器(零动态内存分配),也是 Go 的微型 Web 框架。 特性: 快速 HTTP 路由器,智能优先可扩展中间件,支持: echo.MiddlewareFunc func(echo.HandlerFunc) echo.HandlerFunc echo.HandlerFunc func(*echo.Context) error func(http.Handler) http.Handler http.Handler http.HandlerFunc func(http.ResponseWr...阅读全文

golang中的检验hash

1.对字符串进行hash 大家可以看一下, SHA1 Hashes Go by Example写道: The pattern for generating a hash is sha1.New(), sha1.Write(bytes), then sha1.Sum([]byte{}). 附上golang代码 package main import ( "crypto/sha1" "fmt" ) func main() { s := "sha1 this string" h := sha1.New() h.Write([]byte(s)) bs := h.Sum(nil) fmt.Println(s) fmt.Printf("%x\n", bs) } 结果输出为: sha1 this stri...阅读全文

博文 2014-10-04 19:26:00 getong

golang实现异步并发sokect

搜索golang + epoll的例子,得到下面这段代码,感觉golang的编程思维真正做到了并行编程: package main import ( "fmt" "net" "os" "time" ) const ( MAX_CONN_NUM = 5 ) //echo server Goroutine func EchoFunc(conn net.Conn) { defer conn.Close() buf := make([]byte, 1024) for { _, err := conn.Read(buf) if err != nil { //println("Error reading:", err.Error()) return } //send reply _, err = con...阅读全文

博文 2014-10-04 19:26:38 yunfound

利用golang和QML来开发Ubuntu应用

在前面的文章“使用golang来设计我们的Ubuntu Scope”中,我们已经介绍了如何利用golang来开发Ubuntu Scope。在今天的文章中,我们来简单介绍一下如何使用golang来开发QML应用。这对于一些熟悉golang语言的,但是不是很熟悉C++的开发这来说,无疑是一个好的选择。虽然我们大多数的QML应用只需要QML加上一些Javascript的脚本即可,但是我们可以使用Qt C++或Go语言来拓展它的功能,来做一些需要计算或特殊功能的部分。 首先,我们来查看我们中国开发者dawndiy所做的一个repository: https://github.com/dawndiy/ubuntu-go-qml-template 这个repository是基于另外一个repositor...阅读全文

博文 2015-08-18 18:00:01 UbuntuTouch

Golang实现ping

ICMP部分的结构 报头 ICMP报头从IP报头的第160位开始,即第20个字节开始(除非使用了IP报头的可选部分)。 Bits 160-167 168-175 176-183 184-191 160 Type Code 校验码(checksum) 192 ID 序号(sequence) Type - ICMP的类型,标识生成的错误报文;Code - 进一步划分ICMP的类型,该字段用来查找产生错误的原因.;例如,ICMP的目标不可达类型可以把这个位设为1至15等来表示不同的意思。Checksum - 校验码部分,这个字段包含有从ICMP报头和数据部分计算得来的,用于检查错误的数据,其中此校验码字段的值视为0。ID - 这个字段包含了ID值,在Echo Reply类型的消息中要返回这个字段。...阅读全文

博文 2016-04-13 22:00:06 simplelovecs

[go]ipv6 ping测试

其实很简单.就是对照go源码的ipraw_test.go和之前的ping.go 改造一个ping6.go.变化很小 // Copyright 2009 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. // taken from http://golang.org/src/pkg/net/ipraw_test.go //20131204,尝试改造支持ipv6 package ping6 import ( "bytes" "errors" "net" "os" "t...阅读全文

博文 2014-10-04 19:25:56 laputa73

golang web程序开机自动启动,并隐藏cmd窗口

注意:本文中设计的方法,虽然能够隐藏控制台窗口,但并不是真正意义的"后台运行",此时,如果注销服务器,那么所有运行的golang网站服务程序都会终止,解决办法: 点击使用.net完美解决服务器注销后go的web服务停止的问题 如果一个服务器有10个golang的web,每一个都显示一个cmd窗口的话,会很难看,解决如下: 1)go build 你的web 生成一个exe文件 例如 我的项目叫 "myweb",那么我需要在我的项目根目录上面打开cmd,执行一条命令就可以了: go build myweb .就会生成一个myweb.exe文件 2)制作bat文件 通过bat文件启动该exe文件: 新建一个空bat文件,把上一步生成的myweb.exe的绝对路径添加到bat文件中,这样双击bat文...阅读全文

博文 2015-06-17 20:02:34 zhifeiya

整理下Base64相关的东西(OpenSSL/GO...)

Base64在不同语言对接时,其实是有些小坑的,之前有碰过。 首先Base64的是啥? 阮一峰有一篇写得很赞的文章说得很明白。 然后是怎么编码? 我用OpenSSL写了个Base64解编码实现: /* 用openssl来做Base64加解密. Author: xcl Date:2015-9-17 */ #include #include #include #include "openssl/ssl.h" #include #include #if defined(WIN32) || defined(_WIN64) #pragma comment(lib, "libeay...阅读全文

博文 2015-10-24 13:00:05 xcltapestry

如何为Linux安装Go语言

导读 Go 语言又称为 golang, 是由 Google 最初开发的一种开源编程语言,其在设计时就遵循了简单、安全和速度的 3 大原则。Go 语言具有多种调试、测试、分析和代码审查工具,如今 Go 语言和工具已在大多数 Linux 发行版本的源库中进行提供,本文我就来说明如何为 Linux 安装 Go 语言。 Ubuntu、Debian或Linux Mint安装Go语言 基于 Debian的 Linux 发行版本都可以使用 apt-get 命令来进行安装: sudo apt-get install golang 要查看当前系统安装的 Go 语言版本可以使用如下命令: go version 由于 Go 代码必需保存在 workspace(工作区)中,所以我们必需在 Home 目录(例如 ~/...阅读全文

博文 2016-07-08 08:00:00 linux130

Go 编译过程分析(一) -- 编译脚本

go 语言最近很火,与时俱进,我也看了看go 的语法。 看起来 go 还是不错的,有很多新的feature。 就下载了代码研究了一下。 go 的 src 目录下面存在三套编译文件: window 平台, 所有 bat 文件plan9 平台,所有 rc 文件unix 类平台,所有bash 文件 以 unix 编译文件为例, go 的编译入口时在 src/all.bash , 这是一个bash 脚步, 这个脚步只是简单的调用了 make.bash 在脚步结束之后,调用 dist banner 输出编译的信息。 set -e if [ ! -f make.bash ]; then echo 'all.bash must be run from $GOROOT/src' 1>&2 exit 1 fi...阅读全文

博文 2014-10-09 17:00:01 free2o

新手环境报错,找不到包

sublime3下执行go run main.go报如下错误: main.go:9:5: cannot find package "server/rest" in any of: /usr/local/go/src/server/rest (from $GOROOT) /Users/runc/code/golang/src/server/rest (from $GOPATH) exit status 1 本机环境: runc:rest > echo $GOROOT /usr/local/go runc:rest > echo $GOPATH /Users/runc/code/golang 项目当前目录: runc:rest...阅读全文

Go-Ping

package conn import ( "bytes" "net" "os" "time" ) const ( ICMP_ECHO_REQUEST = 8 ICMP_ECHO_REPLY = 0 ) // Ping Request func makePingRequest(id, seq, pktlen int, filler []byte) []byte { p := make([]byte, pktlen) copy(p[8:], bytes.Repeat(filler, (pktlen-8)/len(filler)+1)) p[0] = ICMP_ECHO_REQUEST // type p[1] = 0 // code p[2] = 0 // cksum p[3] = 0 // ...阅读全文

博文 2015-02-26 12:28:25 nulijiabei

window 下 go lang 环境变量一键批处理设置

目的,就是为了我这种贼懒得人用的 作者:风来了.呆狐狸 使用的是GO lang ZIP压缩包安装 ,可以自动设置环境变量 使用方法 保存为 go.bat 放到go 目录内,执行go.bat即可,其中GOARCH 要根据自己系统位数设置,这边是64位系统 原理:setx 设置用户环境变量 系统:win7及以上版本可用,winXP不可以使用 目录格式 E:\go E:\go\go #go.bat文件存放目录,该目录就是GO lang ZIP 压缩包解压缩后的目录 E:\go\GOPATH E:\go\Dev 精简版 @ECHO OFF IF EXIST %CD%\bin\go.exe ( IF EXIST %systemroot%\system32\setx.exe ( rem 处理器架构 38...阅读全文

博文 2014-12-07 23:00:01 wljk506

go-bindata 安装

go get -u github.com/jteeuwen/go-bindata/... 执行后仍然没有找到go-bindata命令 echo $GOPATH /root/devhome/golang/go_demo cd /root/devhome/golang/go_demo/bin 可以看到下载的go-bindata在这里 cp 它到 环境变量下/root/bin/go/bin $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('

博文 2016-01-27 18:00:03 lampqiu

Go web开发框架 Baa

** Baa ** 一个简单高效的Go web开发框架。主要有路由、中间件,依赖注入和HTTP上下文构成。 Baa 不使用 ``反射``和``正则``,没有魔法的实现。 **快速上手** **安装:**

go get -u gopkg.in/baa.v1
**示例:**
package main


import (
    "gopkg.in/baa.v1"
)


func main() {
    ap...阅读全文

开源项目 2016-04-18 00:00:00 go-baa

【通知】本站代码已重构,简化安装方式

各位 Gopher,现在您使用的本站,使用 [echo](https://github.com/labstack/echo) 框架进行了代码重构,同时实现了类似 Wordpress 在线上安装配置的功能,降低部署本站的门槛,有利于更多人参与本项目开发。 安装截图(部分): ![studygolang1.jpg](http://studygolang.qiniudn.com/160609/5aba10cf5604217c2f7895300913e3c2.jpg) ![studygolang2.jpg](http://studygolang.qiniudn.com/160609/07e49e8be6c29ac2bfea6add94e666d8.jpg) 如果安装使用过程中...阅读全文

go语言和c++通信的例子

boost 写的一个echo server ,收到 go发起的连接之后会把一个结构体的内容发送给go一边,go语言进行解析,直接贴代码 c++ #include #include #include #include using boost::asio::ip::tcp; struct music { uint32_t id; char name[128]; char type[128]; }; struct music m { id:3225, name:"my heart will go on", type:"mp3@mp4" }; class session { public: ...阅读全文

博文 2014-10-15 23:00:00 qfsun

基于CentOS下sshd和golang环境的Docker

1、Dockerfile文件 #继承centos7镜像 FROM centos:centos7 MAINTAINER tpythoner tpythoner@gmail.com" #yum安装sshd服务 #RUN yum install -y openssh openssh-server openssh-clients RUN yum install -y openssh-server #创建sshd RUN mkdir /var/run/sshd RUN ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key RUN ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key #设置root密码以及添加tpython...阅读全文

博文 2015-06-07 14:00:01 tpythoner

Go语言API开发框架 PhalGo

## 前言 PhalGo是一个Go语言开发的一体化开发框架,主要用于API开发,因为使用ECHO框架作为http服务,MVC模式一样可以使用,牛顿曾经 说过"如果我比别人看得远,那是因为我站在巨人的肩膀上",既然Golang有那么多优秀的组件为什么还要重复造轮子呢?所以就有了一个把一些优秀组件整 合起来降低开发成本的想法,整合了比较好的组件比如echo,gorm,viper等等,开源出来希望可以帮助到大家,也希望和大家一起交流! **注意:框架前期还不是很完善,请不要直接使用到生产环境!** ## PhalGo的目的 PhalGo不是新技术,也不是新的模式,而是继续将前人,大神和顶级大师写的非常优秀的组件进行整合进行分享,并且进行封装来更易于开发...阅读全文

开源项目 2016-06-03 10:00:04 wenzhenxi

配置go语言vim

Go语言自带vim 的语法高亮文件。 1: 开启vim语法高亮 vim ~/.vimrc syntax on set fencs=utf-8,gbk 2:将/usr/local/go/misc/vim/目录下文件拷贝到~/.vim/目录下(如果没有该目录则新建) mkdir ~/.vim cp -R /usr/local/go/misc/vim/* ~/.vim/ 3:新建~/.vim/ftdetect/go.vim,加入下面的内容:au BufRead,BufNewFile *.go set filetype=go echo "au BufRead,BufNewFile *.go set filetype=go" > ~/.vim/ftdetect/go.vim 只需3步,开启vim go...阅读全文

博文 2015-02-27 20:00:04 pkufergus

在golang中使用leveldb

leveldb是一个很强悍的kv数据库,自然,我也希望能在go中使用。 如果有官方的go leveldb实现,那我会优先考虑,譬如这个,但是该库文档完全没有,并且在网上没发现有人用于实战环境,对其能否在生产环境中使用打上问号,保险起见,我还是决定不使用。 因为leveldb有c的接口,所以通过cgo能很方便的进行集成,所以我决定采用该种方式,幸运的是,已经有人做了cgo的版本,也就是levigo。 使用levigo,需要编译安装leveldb,如果需要压缩支持还需要编译snappy,为了简单,我写了一个构件脚本,如下: #!/bin/bash #refer https://github.com/norton/lets/blob/master/c_src/build_deps.sh #你必须在...阅读全文

博文 2014-10-04 19:27:02 siddontang

golang--类似mochiweb的多进程监听tcp链接

用Erlang开发web,很可能就会使用到mochiweb。mochiweb使用16个Erlang式的进程来监听tcp链接,使得任何链接进来都会很快得到处理。Golang跟Erlang很像,在这里实现了一个类似mochiweb的tcp监控链接,一个简单的echo服务器。先看代码。 1 package main 2 3 import ( 4 "log" 5 "runtime" 6 "net" 7 ) 8 9 func main() { 10 11 tcpAddr, err := net.ResolveTCPAddr("tcp", ":9988") 12 check_error(err) 13 tcpListener, err := net.ListenTCP("tcp", tcpAddr) 1...阅读全文

博文 2014-10-04 19:26:05 getong

golang执行linux命令

golang exec 执行系统命令 golang 2014-09-25 13:17:44 2779 0 0 exec.Command() 最简单的方法: cmd := exec.Command("/bin/sh/", "-c", "linux命令") 或复杂的, 各个参数都要单独写 cmd := exec.Command("ls", "-l", "-a") package main import ( "bytes" "fmt" "os/exec" ) func main() { in := bytes.NewBuffer(nil) cmd := exec.Command("sh") cmd.Stdin = in go func() { in.WriteString("echo hello ...阅读全文

博文 2016-08-31 17:00:02 zhangym

Go语言的RPC介绍(含Protobuf-RPC)

本文在 Golang中国博客 的地址: http://blog.go-china.org/09-protorpc 标准库的RPC RPC是远程调用的简称, 简单的说就是要像调用本地函数一样调用服务器的函数. Go语言的标准库已经提供了RPC框架和不同的RPC实现. 下面是一个服务器的例子: type Echo int func (t *Echo) Hi(args string, reply *string) error { *reply = "echo:" + args return nil } func main() { rpc.Register(new(Echo)) rpc.HandleHTTP() l, e := net.Listen("tcp", ":1234") if e != n...阅读全文

博文 2015-06-16 08:50:36 chai2010

golang第一篇

介绍 Go是Google开发的一种编译型,可平行化,并具有垃圾回收功能的编程语言。 罗布·派克(Rob Pike),罗伯特·格瑞史莫(Robert Griesemer),及肯·汤普逊(unix的创造者)于2007年9月开始设计Go语言,稍后Ian Lance Taylor, Russ Cox加入项目中。Go语言是基于Inferno操作系统所开发的。Go语言于2009年11月正式宣布推出,成为开放源代码项目,并在Linux及Mac OS X平台上进行了实现,后追加Windows系统下的实现。 描述 Go语言的语法接近C语言,但是对于变量的声明是不同的,其他语法不同之处是For循环和if判断语句不需要用小括号括起来。Go语言支持垃圾回收功能。Go语言的并行模型是以东尼·霍尔的通信顺序进程(CSP...阅读全文

博文 2015-10-12 03:00:01 7explore-share

go protobuff

Go使用ProtoBuff 发现Google Code上面有针对Go语言的Protobuff实现 code.google.com/p/goprotobuf 下面说下安装过程: go get code.google.com/p/goprotobuf 之后提示no Go source files 执行 go install code.google.com/p/goprotobuf/proto 在Go的安装目录pkg下产生对应路径的proto.a文件 执行 go install code.google.com/p/goprotobuf/protoc-gen-go 在Go的安装目录pkg下产生对应路径的protoc-gen-go文件夹 在Go的bin目录产生protoc-gen-go.exe,使用g...阅读全文

博文 2014-10-04 19:25:56 悠米海

Go Everyday

I've been coding in Go everyday for the past 3 months, for Summit Route. This post describes how I use Go and what works for me, some of which differs from what I've seen in a lot of other tutorials. Tutorials give you the quick solution that might not be the best when you use it every day. This might help some others and the experts might give me ...阅读全文

博文 2015-04-16 13:34:16 Scott Piper