来源:《Go 夜读》微信群 时间:2018-05-09
调试:dlv
(待补充)
go/src/runtime/panic.go
(待补充)
-
Vim:(待补充)
-
Emacs
-
VSCode
-
JetBrains: IntelliJ,Goland
- Goland用学生邮箱可以免费
- 服务器认证(这个就不贴了,大家自行Google)
- 其他更多
- LiteIDE: LiteIDE的跟踪代码很不错,可以同时在一个窗口打开多个项目的目录.
var x string
func init() {
x, err := getValue()
}
有一个全局变量 x,在 init()
函数里面赋值,然后获取 x 的值发现全局变量未赋值,这种情况有什么优雅的解决方法吗?
var x string
func init() {
var err error
x, err = getValue()
}
这个:=为什么不能对全局变量起作用呢?因为它成为局部变量了,屏蔽了全局变量作用域。
var x string
func init()(err error) {
x, err = getValue()
}
以上代码是 错误 的,Go 语言中 main() 和 init() 函数都不能有返回值,否则编译会报错:
func init must have no arguments and no return values
func main must have no arguments and no return values