本文介绍了Go中的静态局部变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

是否可以在Go中定义一个局部变量,该局部变量可以保持从一个函数调用到另一个函数的值?在C语言中,我们可以使用保留字 static .

Is it possible to define a local variable in Go that can maintain its value from one function call to another? In C, we can do this using the reserved word static.

C语言中的示例:

int func() {
    static int x = 0;
    x++;
    return x;
}

推荐答案

使用闭包:

它不必在全局范围内,也不必在函数定义之外.

It doesn't have to be in global scope, just outside the function definition.

func main() {

    x := 1

    y := func() {
        fmt.Println("x:", x)
        x++
    }

    for i := 0; i < 10; i++ {
        y()
    }
}

(在转到操场上的示例)

这篇关于Go中的静态局部变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-10 17:34