我想设置我的$GOPATHvariables来运行我的机器上的一些示例代码: $ smitego-example go run main.go main.go:5:2: cannot find package "github.com/#GITHUB_USERNAME#/smitego" in any of: /usr/local/go/src/pkg/github.com/#GITHUB_USERNAME#/smitego (from $GOROOT) ($GOPATH not set) $ smitego-example export $GOPATH=$HOME -bash: export: `=/Users/#OSX_USERNAME#': not a valid identifier github.com/#GITHUB_USERNAME#/smitego/smitego.go内容: package smitego 我怎样才能设置我的GOPATH ,使其始终如一地工作?
我试图编译InfluxDB数据库(版本v0.8.8)使用go get github.com/influxdb/influxdb 但是,这拉主分支,我需要v0.8.8标记。 我试图做到: go get github.com/influxdb/influxdb/releases/tag/v0.8.8但这失败说无法find。 我也尝试go get GOPATH/src/github… master分支,然后使用GOPATH/src/github…中的git手动检查标签,以便设置对应的版本。 使用最后一种方法的问题是,当我尝试拉取依赖关系时, go get -u -f ./…它试图在主分支中find它们,而其中一些分支不存在于主分支上。 。 TL; DR :执行go get一个特定的github标签,并拉取正确的依赖关系。
我想检查两个结构是否相等,但是有一些问题: package main import ( "fmt" "reflect" ) type T struct { X int Y string Z []int M map[string]int } func main() { t1 := T{ X:1, Y:"lei", Z:[]int{1,2,3}, M:map[string]int{ "a":1, "b":2, }, } t2 := T{ X:1, Y:"lei", Z:[]int{1,2,3}, M:map[string]int{ "a":1, "b":2, }, } fmt.Println(t2 == t1) //error – invalid operation: t2 == […]
在Golang中, var s []int和s := make([]int, 0)什么区别? 我发现两者都有效,但哪一个更好?
我使用来自Go的http包来处理POST请求。 如何从Request对象访问和分析查询string的内容? 我找不到正式文件的答案。
在一个错误的情况下,我试图返回nil ,这会引发错误: cannot use nil as type time.Time in return argument 什么是时间的zero值?时间?
鉴于你有一个接受t interface{}的函数的场景。 如果确定t是一个切片,我该如何在该切片上进行range ? 我不会在编译时知道传入的types,比如[]string , []int或[]MyType 。 func main() { data := []string{"one","two","three"} test(data) moredata := []int{1,2,3} test(data) } func test(t interface{}) { switch reflect.TypeOf(t).Kind() { case reflect.Slice: // how do I iterate here? for _,value := range t { fmt.Println(value) } } } Go Playground示例: http : //play.golang.org/p/DNldAlNShB
有没有人成功地为Gounit testing生成代码覆盖? 我无法在networking上find该工具。
在进行Tour of Go的最后一个练习时 ,我决定需要一个( string , int )对的队列。 这很简单: type job struct { url string depth int } queue := make(chan job) queue <- job{url, depth} 但是这让我想到:Go中是否有内置的pair / tuple数据types? 支持从一个函数返回多个值 ,但是AFAICT,产生的多值元组并不是Gotypes系统中的一等公民。 是这样吗? 至于“你有什么尝试”部分,显而易见的语法(来自Python程序员的POV) queue := make(chan (string, int)) 没有工作。
我想在大猩猩/多路复用的路由和路由器types上添加一个便利的使用方法: package util import( "net/http" "github.com/0xor1/gorillaseed/src/server/lib/mux" ) func (r *mux.Route) Subroute(tpl string, h http.Handler) *mux.Route{ return r.PathPrefix("/" + tpl).Subrouter().PathPrefix("/").Handler(h) } func (r *mux.Router) Subroute(tpl string, h http.Handler) *mux.Route{ return r.PathPrefix("/" + tpl).Subrouter().PathPrefix("/").Handler(h) } 但编译器通知我 无法在非本地typesmux.Router上定义新方法 那么我将如何实现呢? 我是否创build一个具有匿名mux.Route和mux.Router字段的新结构types? 或者是其他东西?