go 笔记

1、go build卡住不动
设置代理,在终端运行:

export GO111MODULE=on
export GOPROXY=https://goproxy.cn

2、golang安装:
https://blog.csdn.net/qq_44830881/article/details/123457805
3、dlv安装
https://zhuanlan.zhihu.com/p/425645473
https://www.jianshu.com/p/7373042bba83

使用go install安装dlv后,运行dlv报错:
bash: dlv: command not found
解决方案:添加环境变量

export PATH=$GOPATH/bin:$PATH # 当$GOPATH为空时,填入具体的GOPATH路径

4、使用dlv exec 调试可执行文件,格式如下:

dlv exec <可执行文件名> -- <命令行参数flags> # 在命令行参数flags前加入--

5、如果 $GOBIN不为空,go install 会把可执行程序安装到$GOBIN目录下,否则把可执行程序安装到$GOPATH/bin目录下。

下面设置$GOBIN是错误的,其值是一个目录GOROOT/bin:GOPATH/bin,而不是目录GOPATH/bin或者GOROOT/bin

 export GOBIN="GOROOT/bin:GOPATH/bin"

6、go version 版本不对
配置以下环境变量

export GOROOT=设置成GO的安装目录
export GOPATH=设置成特定目录  
export PATH="$GOPATH/bin:$GOROOT/bin:$PATH" #PATH查找可执行文件的顺序是从左到右,所以会先从设置的$GOROOT中找到go

7、在以下 go结构体 和 json数据映射。

go结构体:
type Req struct {
	Certificate        *CertificateInput `json:"certificate"`
}
type CertificateInput struct {
	Id                    int64  `json:"id"`
}

json数据:
{
    "certificate": {
        "id": 30
    }
}

如果json数据中没有certificate字段,

json数据中没有certificate字段
{
}

则Req.Certificate为nil。
如果json数据中certificate字段为空白,即

json数据:
{
    "certificate": {
    }
}

则Req.Certificate不为nil,但是Req.Certificate中字段值为0,即Req.Certificate.Id 为0
8、
在go中,用range遍历列表s时, 每次局部变量v的地址相同,要想引用s中的元素,要用&s[i]

  for i, v := range s 

9、
在go中,访问map中不存在的key,会返回该value类型的零值。例如:

	strMap := make(map[string]string)
	val, existed := strMap["test"] // val为"", existed 为false

10、接口值由动态类型type和动态值value两部分构成,其零值为nil,即动态类型type和动态值value都为nil

var w io.Writer 
则w = nil

使用类型断言来获取 interface 的动态值,例如

var i interface{} = "hello"
s, ok := i.(string) // 类型断言
if ok {
    fmt.Println(s)
} else {
    fmt.Println("i is not a string")
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值