Tag:

Go如何快速编译?

我已经Googled围绕Go网站,但我似乎无法findGo的非凡build设时间的解释。 他们是语言function(或缺乏),高度优化的编译器,或其他产品? 我并不是要去推广Go; 我只是好奇。

组织一个多文件Go项目

注意:这个问题跟这个有关,但是两年在Go的历史上已经很长时间了。 在开发过程中组织Go项目的标准方式是什么? 我的项目是一个单独的包mypack ,所以我想我把所有mypack文件放在一个mypack目录下。 但是,我想在开发过程中testing它,所以我至less需要一个文件来声明main包,这样我就可以go run trypack.go 我应该如何组织这个? 每次我想尝试一下,我需要go install mypack吗?

如何在Go中处理configuration

我是Go编程的新手,我想知道:Go程序的configuration参数的首选方法是什么(在其他上下文中,可能使用属性文件或ini文件)?

如何使用Go读/写文件?

我一直在努力学习去,但我一直试图读取和写入普通文件。 我可以得到尽可能inFile, _ := os.Open(INFILE, 0, 0) ,但实际上获取文件的内容是没有意义的,因为读取函数采用[]byte作为参数。 func (file *File) Read(b []byte) (n int, err Error)

如何在Go中编写多行string?

Go有没有类似于python的多行string: """line 1 line 2 line 3""" 如果不是,跨越多行编写string的首选方式是什么?

JSON和处理未报告的领域

编码/ json不包含未导出的字段是否有技术上的原因? 如果不是这样,这是一个武断的决定,是否可以有一个额外的后门选项(比如说“+”),即使未被引用也是如此? 要求输出客户端代码来获得这个function感觉不幸,特别是如果小写字母提供封装,或者对编组结构的决定比它们的devise晚得多。 人们如何处理这个问题? 只是出口一切? 另外,不输出字段名称使得难以遵循所build议的习惯用法。 我想如果一个结构X有字段Y,你不能有一个访问器方法Y()。 如果你想提供对Y的接口访问,你必须为getter提供一个新的名字,不pipe你会得到什么非惯用的东西,根据http://golang.org/doc/effective_go.html#Getters

取一个JSONstring,将其解组成一个map interface {},编辑并将其编组成一个字节似乎更复杂,那么它应该是

我正在做非常基本的JSON操作来学习一些Go,它工作,除了一件事情似乎closures,我必须编写.(map[string]interface{})和.([]interface{})来访问JSON中的条目,特别是如果他们是儿童的孩子等等 看到这里(也在Go游乐场: https : //play.golang.org/p/Wd-pzHqTsU ): package main import ( "fmt" "encoding/json" ) func main() { JSON := []byte(`{"key1":"val1","key2":{"c1key1":"c1val1"},"key3":[{"c2key1":{"c3key1":"c3val1"}}]}`) fmt.Printf("%s\n", JSON) var d map[string]interface{} json.Unmarshal(JSON, &d) fmt.Println(d["key3"].([]interface{})[0].(map[string]interface{})["c2key1"].(map[string]interface{})["c3key1"]) d["key3"].([]interface{})[0].(map[string]interface{})["c2key1"].(map[string]interface{})["c3key1"] = "change1" fmt.Println(d["key3"].([]interface{})[0].(map[string]interface{})["c2key1"].(map[string]interface{})["c3key1"]) JSON, _ = json.Marshal(d) fmt.Printf("%s\n", JSON) } 哪个返回: {"key1":"val1","key2":{"c1key1":"c1val1"},"key3":[{"c2key1":{"c3key1":"c3val1"}}]} c3val1 change1 {"key1":"val1","key2":{"c1key1":"c1val1"},"key3":[{"c2key1":{"c3key1":"change1"}}]} 现在在Python中,我直接访问键/值,而不是定义每次访问的types,而不是定义fmt.Println(d["key3"].([]interface{})[0].(map[string]interface{})["c2key1"].(map[string]interface{})["c3key1"])您print d["key3"][0]["c2key1"]["c3key1"] Python示例: import json JSON = '{"key3": [{"c2key1": {"c3key1": "c3val1"}}], "key2": […]

有没有办法从string创build一个结构的实例?

给定一个结构体: type MyStruct struct { A int B int } 和一个结构名称的string a := "MyStruct" 要么 a := "mypkg.MyStruct" 如何从string名称而不是结构创build我的结构实例? 这个想法是,我将创build一个应用程序与所有链接到二进制文件的结构,但创build从string的运行时实例。 (一种元元)

Go code中有什么“foo。(bar.Baz)”的东西?

例如,在这个答案中: https://stackoverflow.com/a/10385867/20654 … if exiterr, ok := err.(*exec.ExitError); ok { … err.(*exec.ExitError)什么err.(*exec.ExitError) ? 它是如何工作的?

这是在golang的铸造?

paxPayment, ok = dataObject.(*entities.PassengerPayment) 括号用于什么? 我不确定这次作业是怎么回事。 你需要更多的细节来回答这个问题吗?