代碼: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預期的:0 A1 B2 C2我期待我可以在 for-range 之外訪問“i”,因為它是事先初始化的??赡芘c我缺少的變量范圍有關,如果是這樣,如何實現我的期望?*注意:我是golang的新手。
1 回答
aluckdog
TA貢獻1847條經驗 獲得超7個贊
您正在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 關注
- 151 瀏覽
添加回答
舉報
0/150
提交
取消
