基本用法略, 搜索即可
注意事项类型推断
:=
// i1 默认是 int 类型
i1 := 1
// 当需要把 i2 当成 int64 来使用时需要进行类型转换再赋值
i2 := int64(1)
这里说到类型推断, 提一下 const 变量, 如果是 const 变量中定义的值会自动根据语境在编译期自动判断类型
同作用域已有变量不会重新创建新的变量
:=
// 返回 1
func testFunc() (ret int) {
ret, err := 1, error(nil)
if err != nil {
return
}
return
}
作用域不同一定会创建新的变量
跟上面一点要区分开
// 返回 0, 返回值的 ret 并没有被赋值, 赋值的是 if 里面的 ret, 和外面的 ret 并不相关
func testFunc() (ret int) {
if ret, err := 1, error(nil); err != nil {
fmt.Println(ret)
return
}
return
}