美文网首页
go小学鸡踩坑记录

go小学鸡踩坑记录

作者: nnnnxcj | 来源:发表于2020-04-23 17:18 被阅读0次

    环境: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那块),没有就报找不到,把文件粘过去就行。

    相关文章

      网友评论

          本文标题:go小学鸡踩坑记录

          本文链接:https://www.haomeiwen.com/subject/cibaihtx.html