加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

golang 简短变量声明注意事项

发布时间:2020-12-16 18:18:15 所属栏目:大数据 来源:网络整理
导读:操作 := 只能用于方法内部,声明并初始化新的变量, 不能用于已声明变量赋值 var v int = 0v := 1 // 错误 := 操作左边必须要有新变量,那么多个变量初始化只需要满足左边至少有一个新变量即可 f,err := os.Open(infile)// ...f,err := os.Create(outfile)//错


操作 := 只能用于方法内部,声明并初始化新的变量,不能用于已声明变量赋值

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   
}()

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读