golang: 详解interface和nil

golang的nil在概念上和其它语言的null、None、nil、NULL一样,都指代零值或空值。nil是预先说明的标识符,也即通常意义上的关键字。在golang中,nil只能赋值给指针、channel、func、interface、map或slice类型的变量。如果未遵循这个规则,则会引发panic。对此官方有明确的说明:http://pkg.golang.org/pkg/builtin/#Type golang中的interface类似于java的interface、PHP的interfa...阅读全文

阅读:13305 评论:0

Go中优雅的HTTP服务关闭

虽然写出7x24小时不间断运行的服务是一件很酷的事情,但是我们仍然在某些时候,譬如服务升级,配置更新等,得考虑如何优雅的结束这个服务。 当然,最暴力的做法直接就是kill -9,但这样直接导致的后果就是可能干掉了很多运行到一半的任务,最终导致数据不一致,这个苦果只有遇到过的人才能深深地体会,数据的修复真的挺蛋疼,有时候还得给用户赔钱啦。 所以,通常我们都是给服务发送一个信号,SIGTERM也行,SIGINTERRUPT也成,反正要让服务知道该结束了。而服务收到结束信号之后,首先会拒绝掉所有外部新...阅读全文

2015.01.25 21:04 siddontang
阅读:17586 评论:0

Go语言环境配置 Sublime Text + GoSublime+ gocode + MarGo组

买来《Go Web编程》一书学习Go语言,结果按照书中的步骤搭建,发现部分站点已经失效了,查了网上好多教程也没有人能够说清楚如何搭建。还是自己动手找方法吧,经过自己的不懈努力终于搭建好了。ps:没有google的日子太难受了,查资料各种不方便,平时基本不FQ,所以。。。。。。1.下载安装go,今天安装go的时候发现go官网打不开,在网上找各种go下载地址无果,不过还是在不经意间发现了一个下载地址,希望你看到这篇文章时还能下载。我的机器是64位windows8,找个可用的msi太费劲了。附地址 :...阅读全文

2015-05-19 10:31 ____追梦人
阅读:4508 评论:0

让golang 代码在arm设备上运行

首先,检查自己安装的go有没有5g 5l这两个文件, 执行:go tool 5a 5c 5g 5l 6a 6c 6g 6l addr2line cgo dist fix nm objdump pack pprof yacc 我这里是已经安装好了,如果见不到5g 5l的话,就要自己再次编译一次go代码了 进入go/src 执行:CGO_ENABLED=0 GOARCH=arm GOOS=linux ./make.bash阅读全文

2015-03-19 22:44 juxuny
阅读:11265 评论:0

整理了一份全国行政区划数据表,省市区县各级已经用 golang 做了关联,三级联动

代码如下:```package mainimport (    "database/sql"    "encoding/json"    "fmt"    "io/ioutil"    "log"    "net/http"    "strconv"    "strings"    _ "github.com/go-sql-driver/mysql")type tude struct {    Lat float32 `json:lat`    Lng float32 `json:lng`}ty...阅读全文

2017-07-02 18:57:32 April
阅读:5047 评论:4