golang 簡短變量聲明注意事項


操作 := 只能用於方法內部, 聲明並初始化新的變量,不能用於已聲明變量賦值

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







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章