Go 与条件语句一样,循环块中声明的任何变量的作用域都仅限于该块

3 min read

。在循环结束时,这些变量也会被销毁。

在一些情况下,可能需要在循环块外部引用循环内的变量。这时可以使用一个额外的变量来保存循环内的值,或者将循环块封装到一个函数中,使得它的作用域扩展到函数的外部。

下面是一个简单的例子,展示了使用一个额外变量存储循环内的值:

sum := 0
for i := 1; i <= 10; i++ {
    sum += i
}
fmt.Println(sum) // 输出55

下面是一个通过函数封装循环块的例子:

func main() {
    sum := sumUpTo(10)
    fmt.Println(sum) // 输出55
}

func sumUpTo(n int) int {
    sum := 0
    for i := 1; i <= n; i++ {
        sum += i
    }
    return sum
}