代碼:arr := []string{"A", "B", "C", "D"}i := 0for i, s := range arr { fmt.Println(i, s) if s == "C" { break }}fmt.Println(i)輸出:0 A1 B2 C0預(yù)期的:0 A1 B2 C2我期待我可以在 for-range 之外訪問“i”,因為它是事先初始化的。可能與我缺少的變量范圍有關(guān),如果是這樣,如何實現(xiàn)我的期望?*注意:我是golang的新手。
1 回答

aluckdog
TA貢獻1847條經(jīng)驗 獲得超7個贊
您正在i
循環(huán)內(nèi)重新聲明變量。請參閱聲明和范圍,特別是短變量聲明。
您可以訪問循環(huán)內(nèi)部和外部的變量,只要您在外部范圍內(nèi)聲明它們(https://go.dev/play/p/Q3OJ0mUZJH-)
arr := []string{"A", "B", "C", "D"}
i := 0
s := ""
for i, s = range arr {
fmt.Println(i, s)
if s == "C" {
break
}
}
fmt.Println(i)
- 1 回答
- 0 關(guān)注
- 135 瀏覽
添加回答
舉報
0/150
提交
取消