是否可以在Go中定义一个局部变量,该变量可以在一个函数调用到另一个函数调用时保持其值?在C语言中,我们可以使用保留字static
来实现这一点.
C语言中的示例:
int func() {
static int x = 0;
x++;
return x;
}
是否可以在Go中定义一个局部变量,该变量可以在一个函数调用到另一个函数调用时保持其值?在C语言中,我们可以使用保留字static
来实现这一点.
C语言中的示例:
int func() {
static int x = 0;
x++;
return x;
}
使用closure:
函数文字是闭包:它们可以引用在 周围的功能.然后,这些变量在 包围函数和函数文字,它们作为 只要他们是可以接近的.
它不必在全局范围内,只要在函数定义之外即可.
func main() {
x := 1
y := func() {
fmt.Println("x:", x)
x++
}
for i := 0; i < 10; i++ {
y()
}
}
(Go Playground号上的样本)