初学Go语言

Go语言刚出现时就打算学过,后来有些变化一直没能学成。最近时间多一点就拿出来捣鼓捣鼓。

还是先从简单的搞起吧。Go在多并发方面真的很不错,虽然没有想Nodejs那样的V8解析执行,但是编译成可执行文件的效率也是蛮可观的。

先从一个简单的网络Echo例子开始:

server.go

client.go

值得注意的是,client程序是以读取到\n为结束的,也就是说,若返回数据不存在\n就会无限等待或者被关闭连接,如果想读取可靠的二进制数据流,则可以尝试使用bufio.Read方法。

Golang还有一个比较有意思的地方是,interface对外开放的函数是以大小写区分的,这个也是我第一次见到,写长程序的时候经常会依赖于自动填充而输错,值得注意一下。

Update 2013-07-09: Go1.1之后版本变化比较大,尤其是参数等等的部分。值得注意的几Tips(Windows):

1. 首先,GOPATH和GOROOT的设置。GOROOT在默认安装路径下可以不用设置,否则需指定Go的安装路径。GOPATH是第三方包放置路径,且不可与GOROOT相同。

2. 参数传递问题:1.1之后修改了参数传递方式,原来Unix方式的传输参数方式修改成了需要添加空格方式,比如比较常用的编译为GUI模式的程序的命令:

go build -ldflags -H windowsg

现在变成了

go build -ldflags “-H windowsgui”

Licensed under CC BY-NC-SA 4.0
comments powered by Disqus