Tag:

Go提供REPL吗?

交互式环境对程序员非常有帮助。 但是,似乎Go不提供它。 我的理解是正确的吗?

在Go中如何pipe理身份validation?

对于在Go中构buildRESTful API和JS前端应用程序的人员,您如何pipe理身份validation? 你使用任何特定的库或技术? 我很惊讶地发现这么less的讨论。 我记住下面的答案,并试图避免开发自己的实现: ASP.Net中的身份validation表单 每个人都分别编码自己的解决scheme吗?

指针与参数和返回值中的值

在Go中有各种方法来返回struct值或其片。 对于我见过的个人来说: type MyStruct struct { Val int } func myfunc() MyStruct { return MyStruct{Val: 1} } func myfunc() *MyStruct { return &MyStruct{} } func myfunc(s *MyStruct) { s.Val = 1 } 我了解这些之间的差异。 第一个返回结构的副本,第二个指向函数中创build的结构值的指针,第三个需要传入一个现有结构并覆盖该值。 我已经看到所有这些模式都被用在不同的环境中,我想知道最佳实践是什么。 你什么时候用哪个? 例如,第一个可以适用于小型结构(因为开销很小),第二个适用于大型结构。 第三,如果你想要非常有效的内存,因为你可以很容易地重用调用之间的单个结构实例。 什么时候使用哪种最佳实践? 同样,关于切片的同样的问题: func myfunc() []MyStruct { return []MyStruct{ MyStruct{Val: 1} } } func myfunc() []*MyStruct { return […]

从Go连接到MySQL的build议方法是什么?

我正在寻找一个可靠的解决scheme,从Go连接到MySQL数据库。 我已经看到了一些图书馆,但很难确定完整性和当前维护的不同状态。 我没有复杂的需求,但是我想知道人们依赖什么,或者什么是连接到MySQL的最标准的解决scheme。

Go编程语言的优缺点是什么?

不久之前,Google推出了这种新的编程语言,据说Python的速度非常快,而且非常简单。 我不会判断这个说法,而是问你: 你认为Go的优点和缺点是什么? 你能告诉我们关于你给这种编程语言的真正用处吗?

Go是为什么devise的?

似乎Go是为了替代以前用C ++解决的问题而devise的。 这是一个准确的说法吗? Go是为什么devise的?

GOPATH和GOROOT的价值应该是什么?

我正在尝试像这样安装doozer $ goinstall github.com/ha/doozer 我得到这些错误。 goinstall: os: go/build: package could not be found locally goinstall: fmt: go/build: package could not be found locally goinstall: io: go/build: package could not be found locally goinstall: reflect: go/build: package could not be found locally goinstall: math: go/build: package could not be found locally goinstall: rand: go/build: package could […]

在Go中处理JSON Post请求

所以我有下面的,这似乎非常hacky,我一直在想,Go比这更好的devise库,但我找不到一个Go处理POST请求的JSON数据的例子。 他们都formsPOST。 这是一个示例请求: curl -X POST -d "{\"test\": \"that\"}" http://localhost:8082/test 这里是embedded日志的代码: 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"} err := json.Unmarshal([]byte(key), &t) […]

如何在Ubuntu上设置GOPATH环境variables? 我必须编辑什么文件?

我正在努力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没有设置,我怎么设置它? 我看到很多提到这个错误的线程,但是没有提供我的问题的答案,哪个文件需要被编辑以提供这个path的值?

遍历地图的所有键

有没有办法获得一个Go语言地图中所有键的列表? 元素的数量由len()给出,但如果我有一个像这样的地图: m := map[string]string{ "key1":"val1", "key2":"val2" }; 我如何迭代所有的键?