代碼:
arr := []string{"A", "B", "C", "D"}
i := 0
for i, s := range arr {
fmt.Println(i, s)
if s == "C" {
break
}
}
fmt.Println(i)
輸出:
0 A
1 B
2 C
0
預期的:
0 A
1 B
2 C
2
我期待我可以在 for-range 之外訪問“i”,因為它是預先初始化的。可能有一些與我缺少的變數范圍相關的東西,如果是這樣,如何實作我的期望?
*注意:我是 golang 的新手。
uj5u.com熱心網友回復:
您正在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)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/385984.html
標籤:去
下一篇:如何發送指定地址的UDP資料包
