为了账号安全,请及时绑定邮箱和手机立即绑定

在 for-range 循环中调用 break 时如何获取索引?

在 for-range 循环中调用 break 时如何获取索引?

Go
开心每一天1111 2022-10-17 19:39:01
代码: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)


查看完整回答
反对 回复 2022-10-17
  • 1 回答
  • 0 关注
  • 65 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信