代码: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”,因为它是事先初始化的。可能与我缺少的变量范围有关,如果是这样,如何实现我的期望?*注意:我是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 关注
- 109 浏览
添加回答
举报
0/150
提交
取消