Questions tagged «go»

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

7
如何在指定文件中运行测试用例?
我的程序包测试用例分散在多个文件中,如果运行,go test <package_name>它将运行程序包中的所有测试用例。 虽然没有必要全部运行。有没有一种方法指定go test要运行的文件,使其仅运行文件中定义的测试用例?
205 go 

7
我为什么要make()或new()?
简介文档中有许多段落专门介绍了new()和之间的区别make(),但是实际上,您可以在本地范围内创建对象并将其返回。 您为什么要使用一对分配器?
203 go 

3
X不实现Y(…方法具有指针接收器)
已关闭。这个问题需要细节或说明。它当前不接受答案。 想改善这个问题吗?添加详细信息并通过编辑此帖子来澄清问题。 3个月前关闭。 改善这个问题 关于“ X不能实现Y(...方法具有指针接收器) ”的事情已经有一些问答,但是对我来说,他们似乎在谈论不同的事情,而不适用于我的具体情况。 因此,我没有使问题变得非常具体,而是使之变得笼统和抽象-似乎有几种不同的情况可能导致此错误发生,请有人总结一下吗? 即,如何避免该问题,如果发生,可能性是什么?谢谢。


21
断言是邪恶的吗?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或进一步的讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 该Go语言的创造者写的: Go不提供断言。它们无疑是很方便的,但是我们的经验是程序员将它们用作拐杖,以避免考虑适当的错误处理和报告。正确的错误处理意味着服务器在发生非严重错误后仍可继续运行,而不会崩溃。正确的错误报告意味着错误是直接的并指向重点,从而使程序员不必解释大型崩溃跟踪。当程序员看到的错误不熟悉代码时,精确的错误尤为重要。 您对此有何看法?
199 c++  c  error-handling  go  assert 

1
使用json.Unmarshal与json.NewDecoder.Decode解码JSON
我正在开发一个API客户端,在该客户端中,我需要根据请求对JSON有效负载进行编码,并从响应中解码JSON主体。 我已经从几个库中阅读了源代码,并且从我所看到的内容中,我基本上有两种可能性可以对JSON字符串进行编码和解码。 使用json.Unmarshal传递整个响应字符串 data, err := ioutil.ReadAll(resp.Body) if err == nil && data != nil { err = json.Unmarshal(data, value) } 或使用 json.NewDecoder.Decode err = json.NewDecoder(resp.Body).Decode(value) 就我而言,在处理实现的HTTP响应时,io.Reader第二个版本似乎需要较少的代码,但是由于我已经看到了两者,所以我想知道是否有任何偏好是应该使用解决方案,而不是使用其他解决方案。 此外,从这个问题接受的答案说 请使用json.Decoder代替json.Unmarshal。 但没有提及原因。我应该避免使用json.Unmarshal吗?
199 json  go 

5
在Go中列出目录
我一直在尝试找出如何简单地在Go中的单个目录中列出文件和文件夹。 我已经找到了filepath.Walk,但是它会自动进入子目录,这是我不想要的。我所有其他搜索都没有发现更好的结果。 我确定该功能存在,但确实很难找到。让我知道是否有人知道我应该去哪里。谢谢。
197 go 

6
类型转换接口片
我很好奇为什么Go 不会隐式转换[]T为[]interface{},而Go 会隐式转换T为interface{}。我缺少这种转换的重要内容吗? 例: func foo([]interface{}) { /* do something */ } func main() { var a []string = []string{"hello", "world"} foo(a) } go build 抱怨 不能在函数参数中使用(类型[]字符串)作为类型[] interface {} 如果我尝试明确执行此操作,则会遇到同样的事情:b := []interface{}(a)抱怨 无法将(类型[]字符串)转换为类型[] interface {} 因此,每次我需要进行这种转换时(这似乎很多),我一直在做这样的事情: b = make([]interface{}, len(a), len(a)) for i := range a { b[i] = a[i] …

6
应用程序自动构建版本控制
每次编译Go应用时,是否可以自动增加次要版本号? 我想在程序中设置一个带有自动递增部分的版本号: $ myapp -version MyApp version 0.5.132 我设置的版本号是0.5,而132则是每次编译二进制文件时都会自动增加的值。 Go中有可能吗?
193 go 

11
如何使用Go漂亮地打印JSON?
有人知道在Go中漂亮地打印JSON输出的简单方法吗? 库存的http://golang.org/pkg/encoding/json/软件包似乎不包含此功能(编辑:确实如此,请参见接受的答案),而且快速的Google并没有发现任何明显的问题。 我正在寻找的用途既可以漂亮地打印出结果,json.Marshal又可以从任何地方格式化一个充满JSON的字符串,因此出于调试目的而更易于阅读。
191 json  go  pretty-print 

7
Go如何更新第三方软件包?
寻找golang软件包如何积极地增长和改进,我想知道软件包版本的问题如何解决? 我看到一种方法是将第三方程序包存储在项目文件夹下。 但是,如果我将其安装在一起go get怎么办?
189 go 

7
人们如何在Go中管理身份验证?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使它成为Stack Overflow 的主题。 上个月关闭。 改善这个问题 对于那些在Go中构建RESTful API和JS前端应用程序的人,您如何管理身份验证?您在使用任何特定的库或技术吗? 我很惊讶地发现很少对此进行讨论。我谨记以下答案,并在尝试避免开发自己的实现: ASP.Net中的身份验证表单 每个人都分别编写自己的解决方案吗?
187 authentication  go 

7
在github私有存储库中获得“终端提示已禁用”错误的结果
我从浏览器使用Github UI创建了私有仓库examplesite / myprivaterepo。 然后我转到我的go目录(在桌面上)并将其克隆: $ cd $GOPATH $ go get github.com/examplesite/myprivaterepo 到目前为止,一切都很好。创建了文件scheduler.go,将其添加到repo中并进行了推送。 $ vim scheduler.go $ git add scheduler.go $ git commit $ git push 一切都很好。但是,当我去一台干净的笔记本电脑尝试克隆存储库时,出现了一个错误: # Now on laptop, which doesn't yet know about the repo $ cd $GOPATH $ go get github.com/examplesite/myprivaterepo # At this point it …
187 git  go 


7
什么是符文?
什么是runeGo? 我一直在谷歌搜索,但Golang只说了一行:rune是的别名int32。 但是,为什么像交换案例一样在整数周围使用整数呢? 以下是函数交换案例。什么都<=和-? 为什么没有switch任何论点呢? &&应该是说和,但什么是r <= 'z'? func SwapRune(r rune) rune { switch { case 'a' <= r && r <= 'z': return r - 'a' + 'A' case 'A' <= r && r <= 'Z': return r - 'A' + 'a' default: return r } } 其中大多数来自http://play.golang.org/p/H6wjLZj6lW func …
186 go  rune 

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.