Questions tagged «go»

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


4
Go中的ToString()函数
该strings.Join函数仅采用字符串切片: s := []string{"foo", "bar", "baz"} fmt.Println(strings.Join(s, ", ")) 但是能够传递实现ToString()函数的任意对象将是一个很好的选择。 type ToStringConverter interface { ToString() string } Go中是否有类似的东西,还是我必须int用ToString方法来修饰现有类型并编写一个包装器strings.Join? func Join(a []ToStringConverter, sep string) string
95 go  tostring 

2
将小时,分钟,秒添加到当前时间
如何将小时,分钟和秒(定义为整数)添加到当前时间,类似于AddDate? timein := time.Now().Local().AddDate(Hours, Mins, Sec) 但要花几小时,几分钟和几秒钟
95 go  time 

9
可以在Windows上安装Go编译器吗?
我一直在寻找golang.org上的Windows编译器,但似乎找不到它。我只能看到Linux和OS X编译器。有谁知道Go编程是否可以在Windows上完成,还是Google尚未实现的编程? 更新:看来,截至目前(2012年11月),golang.org具有Windows 32 / x86_64的官方二进制发行版。
94 windows  go 

1
使用`http.NewRequest(…)`发出URL编码的POST请求
我想向API发送POST请求,以将我的数据作为application/x-www-form-urlencoded内容类型发送。由于我需要管理请求标头,因此我正在使用该http.NewRequest(method, urlStr string, body io.Reader)方法来创建请求。对于此POST请求,我将数据查询附加到URL,并将正文保留为空,如下所示: package main import ( "bytes" "fmt" "net/http" "net/url" "strconv" ) func main() { apiUrl := "https://api.com" resource := "/user/" data := url.Values{} data.Set("name", "foo") data.Add("surname", "bar") u, _ := url.ParseRequestURI(apiUrl) u.Path = resource u.RawQuery = data.Encode() urlStr := fmt.Sprintf("%v", u) // "https://api.com/user/?name=foo&surname=bar" client := &http.Client{} …
94 http  go 

4
执行:紧急:运行时错误:无效的内存地址或nil指针取消引用
当运行我的Go程序时,它会慌张并返回以下内容: panic: runtime error: invalid memory address or nil pointer dereference [signal 0xb code=0x1 addr=0x38 pc=0x26df] goroutine 1 [running]: main.getBody(0x1cdcd4, 0xf800000004, 0x1f2b44, 0x23, 0xf84005c800, ...) /Users/matt/Dropbox/code/go/scripts/cron/fido.go:65 +0x2bb main.getToken(0xf84005c7e0, 0x10) /Users/matt/Dropbox/code/go/scripts/cron/fido.go:140 +0x156 main.main() /Users/matt/Dropbox/code/go/scripts/cron/fido.go:178 +0x61 goroutine 2 [syscall]: created by runtime.main /usr/local/Cellar/go/1.0.3/src/pkg/runtime/proc.c:221 goroutine 3 [syscall]: syscall.Syscall6() /usr/local/Cellar/go/1.0.3/src/pkg/syscall/asm_darwin_amd64.s:38 +0x5 syscall.kevent(0x6, 0x0, 0x0, …
94 go 

6
按键对Go地图值进行排序
在主题函数返回的代码中迭代返回的映射时,键未按顺序显示。 我如何才能使键按顺序排列/对地图进行排序,以使键按顺序排列并且值对应? 这是代码。
94 go  hashmap 

6
将地图转换为结构
我试图在Go中创建一个通用方法,该方法将填充struct来自的使用数据map[string]interface{}。例如,方法签名和用法可能类似于: func FillStruct(data map[string]interface{}, result interface{}) { ... } type MyStruct struct { Name string Age int64 } myData := make(map[string]interface{}) myData["Name"] = "Tony" myData["Age"] = 23 result := &MyStruct{} FillStruct(myData, result) // result now has Name set to "Tony" and Age set to 23 我知道可以使用JSON作为中介来完成;还有另一种更有效的方法吗?
94 go 

3
将Go map转换为json
我试图用encoding/jsonMarshal 将Go映射转换为json字符串,但结果为空字符串。 这是我的代码: package main import ( "encoding/json" "fmt" ) type Foo struct { Number int `json:"number"` Title string `json:"title"` } func main() { datas := make(map[int]Foo) for i := 0; i < 10; i++ { datas[i] = Foo{Number: 1, Title: "test"} } jsonString, _ := json.Marshal(datas) fmt.Println(datas) fmt.Println(jsonString) } …
94 json  go 

5
如何使用Go提供JSON响应?
问:目前我打印出我的回应func Index 是这样fmt.Fprintf(w, string(response)) 但是,我怎么能正确地在请求发送JSON,以便它可能由视图消耗? package main import ( "fmt" "github.com/julienschmidt/httprouter" "net/http" "log" "encoding/json" ) type Payload struct { Stuff Data } type Data struct { Fruit Fruits Veggies Vegetables } type Fruits map[string]int type Vegetables map[string]int func Index(w http.ResponseWriter, r *http.Request, _ httprouter.Params) { response, err := getJsonResponse(); if …
94 json  go 

3
您如何获得Golang程序来打印刚刚调用的错误的行号?
我试图使用Go语言在Golang程序中抛出错误,log.Fatal但是log.Fatal也没有打印出log.Fatal运行该行的行。无法访问名为log.Fatal的行号吗?即有没有办法在抛出错误时获取行号? 我试图用谷歌搜索,但不确定如何。我能得到的最好的结果是打印堆栈跟踪,我认为这很好,但可能有点过多。我也不想debug.PrintStack()每次都需要行号时就写东西,我只是惊讶地发现没有任何内置函数可以用于这种log.FatalStackTrace()或非服装的东西。 另外,我不想制作自己的调试/错误处理工具的原因是,我不想让人们不得不学习如何使用我的特殊服装处理代码。我只想要一些标准,人们以后可以阅读我的代码,就像 “嗯,所以它抛出一个错误并执行X ...” 了解我的代码的人越少越好:)

2
…interface {}(点点接口)的含义
以下是我有疑问的Go代码。具体来说,a此功能是什么? func DPrintf(format string, a ...interface{}) (n int, err error) { if Debug > 0 { n, err = fmt.Printf(format, a...) } return } 谁能告诉我这三个点是什么?怎么...interface{}办?
92 go 


25
转到示例和成语[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 没有很多Go语言代码可用于学习该语言,而且我敢肯定我不是唯一一个尝试过该语言的人。因此,如果您发现有关该语言的一些有趣信息,请在此处发布示例。 我也在寻找 Go中惯用的方式 C / C ++思维风格“移植”到Go, 有关语法的常见陷阱, 真的很有趣。
91 go 

9
go get“无法识别的导入路径”
我正在尝试安装web.go,但正在运行go get github.com/hoisie/webreturn package bufio: unrecognized import path "bufio" package bytes: unrecognized import path "bytes" package crypto/rand: unrecognized import path "crypto/rand" package crypto/sha1: unrecognized import path "crypto/sha1" package crypto/tls: unrecognized import path "crypto/tls" package encoding/base64: unrecognized import path "encoding/base64" package encoding/binary: unrecognized import path "encoding/binary" package encoding/json: unrecognized import path …
91 go  install 

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.