Questions tagged «go»

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

24
如何在Ubuntu上设置GOPATH环境变量?我必须编辑什么文件?
我正在尝试做一个go get: go get github.com/go-sql-driver/mysql 并且失败并显示以下错误: package github.com/go-sql-driver/mysql: cannot download, $GOPATH not set. For more details see: go help gopath 当我执行时go env,Go值列表如下所示: ubuntu@ip-xxx-x-xx-x:~$ go env GOARCH="amd64" GOBIN="" GOCHAR="6" GOEXE="" GOHOSTARCH="amd64" GOHOSTOS="linux" GOOS="linux" GOPATH="" GORACE="" GOROOT="/usr/lib/go" GOTOOLDIR="/usr/lib/go/pkg/tool/linux_amd64" CC="gcc" GOGCCFLAGS="-g -O2 -fPIC -m64 -pthread" CGO_ENABLED="1" 显然没有设置GOPATH,如何以及在哪里设置? 我看到许多线程都提到了此错误,但是没有一个线程提供了我的问题的答案,需要编辑哪个文件才能为此路径提供值?
258 linux  ubuntu  go 

6
在Go中处理JSON发布请求
因此,我得到了以下内容,这些内容似乎非常难以破解,并且我一直在想自己Go的库设计得比此更好,但是我找不到Go处理JSON数据POST请求的示例。它们都是POST形式。 这是一个示例请求: curl -X POST -d "{\"test\": \"that\"}" http://localhost:8082/test 这是代码,其中嵌入了日志: package main import ( "encoding/json" "log" "net/http" ) type test_struct struct { Test string } func test(rw http.ResponseWriter, req *http.Request) { req.ParseForm() log.Println(req.Form) //LOG: map[{"test": "that"}:[]] var t test_struct for key, _ := range req.Form { log.Println(key) //LOG: {"test": "that"} …
250 json  go 

2
函数声明语法:函数名称前括号内的内容
抱歉,我无法在问题标题中更加具体,但是我正在阅读一些Go代码,并且遇到了这种形式的函数声明: func (h handler) ServeHTTP(w http.ResponseWriter, r *http.Request) { ... } 来自https://github.com/mattermost/platform/blob/master/api/context.go func (s *GracefulServer) BlockingClose() bool { ... } 来自https://github.com/braintree/manners/blob/master/server.go 什么是(h handler)与(s *GracefulServer)括号平均值之间?考虑到括号之间事物的含义,整个函数声明是什么意思? 编辑 这与Go中的功能和方法有何不同?:之所以问这个问题,是因为我不知道函数名之前括号中的内容是什么,不是因为我想知道函数和方法之间的区别是什么...如果我知道此声明是一个方法,我不会首先没有这个问题。如果有一天有人和我有同样的疑问,我不相信她会去寻找“ golang方法”,因为她不知道这种情况。这就像想知道字母“ sigma”在数学表达式之前是什么意思(不知道它表示求和),并且有人说这是求和与其他事物之间的区别的重复。 同样,对这个问题的简短回答(“它是一个接收者”)并不是对“函数和方法之间的区别”的回答。
247 go 

4
如何在Go中的POST请求中发送JSON字符串
我尝试使用Apiary,并制作了一个通用模板以将JSON发送到模拟服务器并具有以下代码: package main import ( "encoding/json" "fmt" "github.com/jmcvetta/napping" "log" "net/http" ) func main() { url := "http://restapi3.apiary.io/notes" fmt.Println("URL:>", url) s := napping.Session{} h := &http.Header{} h.Set("X-Custom-Header", "myvalue") s.Header = h var jsonStr = []byte(` { "title": "Buy cheese and bread for breakfast." }`) var data map[string]json.RawMessage err := json.Unmarshal(jsonStr, &data) …
244 json  rest  go  apiary 

9
如何获取当前运行文件的目录?
在nodejs中,我使用__dirname。在Golang中这等效吗? 我已经在Google上搜索并找到了这篇文章http://andrewbrookins.com/tech/golang-get-directory-of-the-current-file/。他在哪里使用以下代码 _, filename, _, _ := runtime.Caller(1) f, err := os.Open(path.Join(path.Dir(filename), "data.csv")) 但这是在Golang中做正确的方法还是惯用的方法吗?
239 go 

7
组织一个多文件Go项目[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引文回答。 8个月前关闭。 改善这个问题 注意:这个问题与此有关,但是两年在Go历史上是很长的时间。 在开发过程中组织Go项目的标准方法是什么? 我的项目是一个包mypack,所以我想我将所有.go文件放在一个mypack目录中。 但是,然后,我想在开发过程中对其进行测试,因此至少需要一个声明该main包的文件,以便我可以go run trypack.go 我应该如何组织呢?go install mypack每次尝试都需要做吗?
238 go 

5
如何避免“声明且未使用”的烦人错误
我正在学习Go,但感到有点烦人,在编译时,我不应该保留任何变量或包。 这确实让我放慢了脚步。例如,我只想声明一个新软件包并计划以后使用它,或者只是取消注释某些命令以进行测试。我总是会收到错误,需要对所有这些用法进行评论。 Go中有什么方法可以避免这种检查吗?
238 go 


6
从地图上获取一部分钥匙
在Go中,有没有更简单/更巧妙的方法从地图中获取键的片段? 目前,我正在遍历地图并将键复制到一个切片: i := 0 keys := make([]int, len(mymap)) for k := range mymap { keys[i] = k i++ }
230 go 

3
删除使用go get安装的软件包
我跑go get package了一个包,然后下载了一个包,然后才知道需要设置我的GOPATH包,否则该包会弄脏我的Go根安装目录(我更希望保持Go的安装目录干净,并使核心与自定义分开)。如何删除以前安装的软件包?
227 go 



12
包含切片的方法
有没有类似于slice.contains(object)Go中的方法的东西,而不必搜索切片中的每个元素?
214 go  slice 



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.