go错误总结

1、go get -v 出现问题
例如:
can't load package: package .: no Go files in C:\Users\nick
无法加载包:package :无可构建Go源文件
解决办法
1、

我必须指定一个更具体的子包来安装。
错误:
    go get github.com/garyburd/redigo
正确:
    go get github.com/garyburd/redigo/redis

2、
也可能说此命令不在此目录下。

2、引入库报错
例如:
在这里插入图片描述
解决办法
需要翻墙或者找到网速快的地方进行拉取依赖

D:\go\chat-master\chat\hello>go get github.com/go-xorm/xorm

在这里插入图片描述
3、安装依赖库
首先下载go的依赖库,通过git下载:git clone https://github.com/golang/tools.git tools
然后通过命令进行安装

go install github.com/ramya-rao-a/go-outline
go install github.com/acroca/go-symbols
go install golang.org/x/tools/cmd/guru
go install golang.org/x/tools/cmd/gorename
go install github.com/josharian/impl
go install github.com/rogpeppe/godef
go install github.com/sqs/goreturns
go install github.com/golang/lint/golint
go install github.com/cweill/gotests/gotests
go install github.com/ramya-rao-a/go-outline
go install github.com/acroca/go-symbols
go install golang.org/x/tools/cmd/guru
go install golang.org/x/tools/cmd/gorename
go install github.com/josharian/impl
go install github.com/rogpeppe/godef
go install github.com/sqs/goreturns
go install github.com/golang/lint/golint
go install github.com/cweill/gotests/gotests

4、go build、go install与go get 有什么区别
go build:在当前目录下生成可执行文件,注意:go build指令会调用所有引用包的源码,重新编译,而不是直接使用pkg里的编译后的文件,如果在$GOROOT或者$GOPATH下没有找到import引入的项目源码,就会报错。
go install:编译源代码,如果为可执行文件(package "main"且包含main方法),则会编译生成可执行文件到$GOPATH\bin目录下,可执行文件import引入其他包,就会被编译到$GOPATH/pkg/$GOOS_$GOARCH目录下。
go get:git clone到$GOPATH\src + go install

5、创建的链接,使用完要关闭

for {
	client, err := rpc.Dial("tcp", info.RpcAddr[0])
    if err != nil {
        log.Error("dialing:%v", err)
    }
    err = client.Call(CometServicePing, args, &reply)
    if err != nil {
        log.Error("CometServicePing error:%v ", err)
        _ = nodeMap[node].Count(time.Now().Unix())
    }
    // 若不关闭, 请求达到一定数量,client将返回nil
    client.Close()
}

6、处理完map元素的任务,要删掉该map的元素,避免重复处理

var nodeMap map[string]*MinLimit = make(map[string]*MinLimit, 10)
for {
        // 如果 nodeMap的某个节点信息已经被处理,node需要从nodeMap上删除
        // 从nodeMap中删除该节点
        delete(nodeMap, node)
}

7、"{" 换行: Opening Brace Can’t Be Placed on a Separate Line
例如:

package main

func main()
{
	println("hello world")
}

报错

./main.go:3:6: missing function body for "main"
./main.go:4:1: syntax error: unexpected semicolon or newline before {

解决办法

package main
func main() {
	println("hello world")
}

8、import 但未使用: Unused Imports
例如:

package main
import (
	"fmt"
	"os"
)
func main() {
	println("hello world")
}

报错

./main.go:4:2: imported and not used: "fmt"
./main.go:5:2: imported and not used: "os"

解决办法

package main
import (
	"fmt"
	_ "os"
)
func main() {
	fmt.Println("hello world")
}

9、命名区分大小写
例如

package main
import "fmt"
func main() {
	fmt.println("Hello world")
}

报错

./main.go:6:2: cannot refer to unexported name fmt.println
./main.go:6:2: undefined: fmt.println

解决办法

package main
import "fmt"
func main() {
	fmt.Println("Hello world")
}
// 以下代码都是不正确的:
// Package main
// iMport "fmt"
// import "Fmt"
// Func main() {}
// Fmt.Println
// fmt.println

参考:https://www.kancloud.cn/liupengjie/go/570004
参考:https://www.yuque.com/explore/headlines

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值