Questions tagged «go»

Go是一种开源编程语言。它是静态类型的,具有从C松散派生的语法,添加了自动内存管理,类型安全性,一些动态类型输入功能,其他内置类型,例如可变长度数组(称为slices)和键值映射,以及大型标准库。

8
初始化嵌套结构
我不知道如何初始化嵌套结构。在此处查找示例:http : //play.golang.org/p/NL6VXdHrjh package main type Configuration struct { Val string Proxy struct { Address string Port string } } func main() { c := &Configuration{ Val: "test", Proxy: { Address: "addr", Port: "80", }, } }
123 go 

1
函数调用中的“用作值”
在条件语句中评估函数值时,调用函数的正确方法是什么? package main import "fmt" func main(){ if sumThis(1,2) > sumThis(3,4){ fmt.Println("test") } else { fmt.Println("derp") } } func sumThis(a, b int){ return a+b } 这将返回错误: ./test4.go:4: sumThis(1, 2) used as value ./test4.go:4: sumThis(3, 4) used as value ./test4.go:11: too many arguments to return 您将如何在Go中编写此代码?
122 go 

3
在Go中以字符串形式访问HTTP响应
我想解析Web请求的响应,但是在以字符串形式访问它时遇到了麻烦。 func main() { resp, err := http.Get("http://google.hu/") if err != nil { // handle error } defer resp.Body.Close() body, err := ioutil.ReadAll(resp.Body) ioutil.WriteFile("dump", body, 0600) for i:= 0; i < len(body); i++ { fmt.Println( body[i] ) // This logs uint8 and prints numbers } fmt.Println( reflect.TypeOf(body) ) fmt.Println("done") } …
122 networking  go 

8
解组嵌套的JSON对象
有一个 小 问题上的话题,但他们都不来覆盖我的情况,因此我创建一个新的。 我有如下的JSON: {"foo":{ "bar": "1", "baz": "2" }, "more": "text"} 有没有一种方法可以解组嵌套的bar属性并将其直接分配给struct属性而不创建嵌套的struct? 我现在采用的解决方案如下: type Foo struct { More String `json:"more"` Foo struct { Bar string `json:"bar"` Baz string `json:"baz"` } `json:"foo"` // FooBar string `json:"foo.bar"` } 这是简化版本,请忽略详细信息。如您所见,我希望能够解析并将其值分配给 // FooBar string `json:"foo.bar"` 我见过有人在使用地图,但这不是我的情况。foo除了一些特定的元素外,我基本上不关心(一个大对象)的内容。 在这种情况下正确的方法是什么?我不是在寻找怪异的技巧,因此,如果这是可行的方法,那我就可以了。
122 json  go 

6
为什么不能用`copy()`复制切片?
我需要在Go中制作切片的副本,并阅读文档,这里有一个复制功能供我使用。 内置复制功能将元素从源切片复制到目标切片。(在特殊情况下,它还会将字节从字符串复制到字节的一部分。)源和目标可能会重叠。复制返回复制的元素数量,该数量将是len(src)和len(dst)的最小值。 但是当我这样做时: arr := []int{1, 2, 3} tmp := []int{} copy(tmp, arr) fmt.Println(tmp) fmt.Println(arr) tmp与以前一样,我是空的(甚至尝试使用arr, tmp): [] [1 2 3] 你可以在操场上检查一下。那为什么不能复制切片?
121 go  slice 

4
子目录中的Golang测试
我想在Go中创建一个带有测试和示例的包作为子目录,以保持工作区的清洁。这有可能吗? 所有文档总是将测试代码与其他代码放在同一位置,这在某种程度上还是惯例上更好?
120 build  go 

4
Golang生产Web应用程序配置
对于那些在生产环境中运行Go后端的人: 运行Go Web应用程序的堆栈/配置是什么? 除了人们使用标准库net / http包来保持服务器运行之外,在该主题上我还没有看到太多东西。我阅读了使用Nginx将请求传递到Go服务器的信息- 使用Go的 Nginx 在我看来,这有点脆弱。例如,如果重新启动计算机(没有其他配置脚本),服务器将不会自动重新启动。 是否有更可靠的生产设置? 除了我的意图外,我正在为我的下一个项目规划一个Go支持的REST后端服务器,并希望确保Go在开始投入实际工作之前能够投入大量精力,然后再投入大量精力。
120 web  go  production 

7
如何确定interface {}值的“真实”类型?
我没有找到使用interface{}类型的好资源。例如 package main import "fmt" func weirdFunc(i int) interface{} { if i == 0 { return "zero" } return i } func main() { var i = 5 var w = weirdFunc(5) // this example works! if tmp, ok := w.(int); ok { i += tmp } fmt.Println("i =", i) …



7
正确的Golang全局日志记录方法
Go中应用程序登录的模式是什么?如果我有5个我需要登录的goroutine,我应该... 创建一个单曲log.Logger并传递它? 传递指向该指针的指针log.Logger? 每个例程或函数都应创建一个记录器吗? 我应该将记录器创建为全局变量吗?
118 logging  go 

3
Go中的配对/元组数据类型
在进行“ 围棋之旅”的最后练习时,我决定需要队列(string,int)对。这很容易: type job struct { url string depth int } queue := make(chan job) queue <- job{url, depth} 但这让我开始思考:Go中是否内置了对/元组数据类型?支持从函数返回多个值,但是AFAICT(产生的多个值元组)不是Go的类型系统中的一等公民。是这样吗 至于“您尝试了什么”部分,显而易见的语法(来自Python程序员的POV) queue := make(chan (string, int)) 没用。
118 go  tuples 


3
转到const的命名约定
我正在尝试确定constGolang中的名称是否有命名约定。 我个人倾向于遵循C风格并以大写形式编写它们,但是我在此页面http://golang.org/doc/effective_go.html上未找到任何内容,该页面似乎列出了该语言的一些命名约定。

5
Go中的fmt.Println()和println()之间的区别
如下图所示,无论是fmt.Println()和println()给围棋相同的输出:Hello world! 但是:它们彼此之间有何不同? 片段1,使用fmt包装; package main import ( "fmt" ) func main() { fmt.Println("Hello world!") } 片段2,不带fmt包装; package main func main() { println("Hello world!") }
116 go  println 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.