环境:go1.14.1
-
var ch chan int
只是一个 nil ,并不能对 chan 进行 <- ch , ch <- 操作(不会报错但是无效,比如一直接收不到导致取阻塞),这种东西必须用 make() 方法初始化才可以用 -
.(type) 必须出现在 switch 语句中,要想打印a的类型请使用
fmt.Println(reflect.TypeOf(a))
-
main 方法是一个工程中的入口处,一个工程中只可以有一个,同理其他语言。如果写了一组带有 main 包 main 方法的 go 文件,单独在 go 文件当前路径终端输入 go run **.go 运行是没有问题的,注意
-
interface{} 用来做函数参数的时候是可以传任意类型,不可以使用其他类型的方法(仍有疑云)
-
有的时候程序还没运行完就退出了。。。。使用 defer
-
类似
["a","b","c"]
这种字符串,使用 json.Unmarshal ,可以用 []string 来接收,类似[{"k1": "aa", "k2": 1}, {"k1": "bb", "k2": 10}]
这种字符串,使用结构体slice来接收,因为数组元素类型是JSON Object -
下包装包错误
例:
Couldn't find gopresent files: cannot find package
"golang.org/x/tools/cmd/present" in any of:
/usr/local/go/src/golang.org/x/tools/cmd/present (from $GOROOT)
/Users/didi/go/src/golang.org/x/tools/cmd/present (from $GOPATH)
找到github下载的包的路径,复制到golang.org/x/路径下
go get -v github.com/golang/tools/cmd/present
go: downloading github.com/golang/tools v0.0.0-20200506181757-c20a87c16a39
go: found github.com/golang/tools/cmd/present in github.com/golang/tools v0.0.0-20200506181757-c20a87c16a39
go get: github.com/golang/tools@v0.0.0-20200506181757-c20a87c16a39: parsing go.mod:
module declares its path as: golang.org/x/tools
but was required as: github.com/golang/tools
使用go get -v golang.org/x/tools/cmd/present进行下载,下载出问题去github官方去找一找怎么说。。
本质上的就是go自己的包它会去那俩路径去找文件(参见导包go module那块),没有就报找不到,把文件粘过去就行。
网友评论