Go中的静态局部变量
是否可以在Go中定义一个局部变量,该局部变量可以从一个函数调用到另一个函数保持其值?在C语言中,我们可以使用保留字static
。
在C中的示例:
int func() { static int x = 0;
x++;
return x;
}
回答:
使用闭包:
函数文字是闭包:它们可以引用周围函数中定义的变量。然后,这些变量在周围的函数和函数文字之间共享,并且只要可以访问它们就可以保留。
它不必在全局范围内,只需在函数定义之外即可。
func main() { x := 1
y := func() {
fmt.Println("x:", x)
x++
}
for i := 0; i < 10; i++ {
y()
}
}
(去操场上的样本)
以上是 Go中的静态局部变量 的全部内容, 来源链接: utcz.com/qa/430643.html