您的位置:首页 > 编程语言 > Go语言

golang 简短变量声明注意事项

2017-03-06 11:15 148 查看
操作 := 只能用于方法内部, 声明并初始化新的变量,不能用于已声明变量赋值

var v int = 0
v := 1 // 错误


:= 操作左边必须要有新变量, 那么多个变量初始化只需要满足左边至少有一个新变量即可

f, err := os.Open(infile)
// ...
f, err := os.Create(outfile)//错误, f2,err:= os.Create(outfile) , //f,err = os.Create(outfile)


func() (err error) {
aa, err := 1, errors.New(" a error") // a是新变量,err是被赋值
if err != nil {
return // 正确返回err
}
//  ------------------------------------------------
if bb, err := 2,  errors.New("b error"); err != nil { // 此刻if语句中err被重新创建
return      // if语句中的err覆盖外面的err,导致编译  错误 (err is shadowed during return)
//解决方案----------------------------
//if bb, err1 := 2,  errors.New("b error"); err1 != nil {
//  err = err1
//  return
//-------------------------------------
} else {
fmt.Println(bb)
}
return
}()



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Golang