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

golang template传递值的第二种方法 利用map[string]interface{}

关于golang tmplate怎么样传递值,以前的调查结果是只能用struct,但是最近开一个开源source,发现他竟然用的是map[string]interface{},百思不得其解,所以用一下代码进行验证。 PS,哎,golang的文档还是太弱了啊。 package main import ( "fmt" "html/template" "net/http" "os" ) type Person struct { Name string Age int Emails []string Company string Role string } const templ = ` name is {{.name}} Company is {{.resources.Company}} ` fu...阅读全文

博文 2014-10-04 19:26:07 rufidmx

golang关于json库的一个比较容易陷入的坑 uint8[]数组的json转换问题.

golang关于json库的一个比较容易陷入的坑 uint8[]数组的json转换问题. 2013-09-11 16:29 837人阅读 评论(0) 收藏 举报 原文来自:http://blog.csdn.net/spiritring/article/details/11570219 类似这个CA如果实例转化成json.List会变成字符串. [cpp] view plaincopy type CA struct { List []uint8 } func main() { ca := CA{[]uint8{1,2,3,4,5,6,7,8,9,0}} r, _ := json.Marshal(ca) fmt.Println(string(r)) //{"List":"AQIDBAUGBwgJ...阅读全文

博文 2014-10-04 19:26:08 newsyoung1

go语言报错信息

出错信息 fatal error: all goroutines are asleep - deadlock! 出错信息的意思是: 在main goroutine线,期望从管道中获得一个数据,而这个数据必须是其他goroutine线放入管道的 但是其他goroutine线都已经执行完了(all goroutines are asleep),那么就永远不会有数据放入管道。 所以,main goroutine线在等一个永远不会来的数据,那整个程序就永远等下去了。 这显然是没有结果的,所以这个程序就说“算了吧,不坚持了,我自己自杀掉,报一个错给代码作者,我被deadlock了” 例子: package main func main() { c := make(chan bool) go func(...阅读全文

博文 2014-10-04 19:26:01 waynehu

七牛为什么没用erlang而用golang呢?

xushiwei 12-9-19 Re: [gocn:6098] 七牛为什么没用erlang而用golang呢? 我早在07年尝试过用erlang做云存储,不流畅,主要问题有二: 1、动态类型。实际上云存储的品质要求是比较高的,包括性能,测试覆盖面等等。重构是比较频繁,所以我希望用静态类型的语言,对重构友好。编译上第一道单元测试,这话是非常有道理的。 2、变量不可变。原则上我倾向于支持变量不可变,但成为约束就不太好,会多出很多临时的小函数,影响代码阅读。我一直对编程范式非常在意,如果一个语言不能用最直观的发生表达程序员的想法,我就不太喜欢。 在 2012年9月18日星期二,Karl Ma 写道: 对于这种大型的应用erlang有什么问题吗?golang有什么优势呢? -- Karl Ma -...阅读全文

博文 2014-10-04 19:26:07 legend_x

给golang程序进行一次廋身

golang语言是使用静态编译,但是由golang编译出来的程序确实有点大,我们需要对它进行一次廋身。 作为惯例:我们第一个程序就是经典的Hello world! // hello project main.go package main import ( "fmt" ) func main() { fmt.Println("Hello World!") } 使用go build hello.go 生成可执行文件 hello 使用命令查看大小ll -h-rwxrwxr-x 1 root root 2.4M May 28 19:54 hello 居然高大2.4MB。 Go语言是静态编译,但是这个也太大了吧。 我们提供一个给程序廋身的方法。 使用命令:go build -ldflags "-s ...阅读全文

博文 2014-10-04 19:26:07 codemanship