首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在for-range循环中,如何在调用中断时获取索引?

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

Stack Overflow用户
提问于 2021-12-16 14:52:41
回答 1查看 113关注 0票数 0

代码:

代码语言:javascript
复制
arr := []string{"A", "B", "C", "D"}

i := 0

for i, s := range arr {
    fmt.Println(i, s)
    if s == "C" {
        break
    }
}

fmt.Println(i)

输出:

代码语言:javascript
复制
0 A
1 B
2 C
0

预期:

代码语言:javascript
复制
0 A
1 B
2 C
2

我原以为我可以在-范围外访问"i“,因为它是预先初始化的。可能有一些与变量的范围有关的东西,如果是的话,如何实现我所期望的呢?

*注:我是刚接触过哥朗的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-16 14:57:16

在循环中重新声明i变量。参见声明和范围,特别是短变量声明

只要在外部作用域(https://go.dev/play/p/Q3OJ0mUZJH-)中声明变量,就可以访问循环内部和外部的变量。

代码语言:javascript
复制
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)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70381078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档