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

回到顶部