记录 go 开发遇到的坑 不使用短变量声明 := json 解析成结构体 module 不要在 vscode 工作区打开工程 同一包不同源文件变量声明时不要带包名 有时候新定义的变量或者函数不能
1 只有导出的结构体成员对外部程序 (json) 可见 2 结构体必须解析的字段(required 标签) 2.1 结构体标签 2.2 json 解析嵌套域 2.3 json 编码时会对指针解引用,使用
旧行为 vs 基于模块的行为 在 GOPATH 之外工作 VSCode 对模块的支持 保存文件时不再自动导入 相关链接 旧行为 vs 基于模块的行为 模块在 Go1.11 开始,因此按照设计旧行为会默认保
编译器遇到一个名字的引用时,从最内层的封闭词法块到全局块寻找其声明 没有找到会报 “undeclared name” 错误 内层和外层都存在声明时,内
同一个包 pkgname 有多个源文件,比如 A.go、B.go。A.go 中声明了变量 var1,B.go 使用此变量直接写 var1,如果使用 pkgname.var1 会报错,找不到定义