是否可以在Go中定义一个局部变量,该局部变量可以从一个函数调用到另一个函数保持其值?在C语言中,我们可以使用保留字static。
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() } }
(去操场上的样本)