为了账号安全,请及时绑定邮箱和手机立即绑定

Go中的静态局部变量

Go中的静态局部变量

Go
jeck猫 2021-10-11 10:35:58
是否可以在 Go 中定义一个局部变量,该变量可以从一个函数调用到另一个函数保持其值?在 C 中,我们可以使用保留字来做到这一点static。C 中的示例:int func() {    static int x = 0;     x++;    return x;}
查看完整描述

3 回答

?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

使用闭包:


函数字面量是闭包:它们可以引用在周围函数中定义的变量。然后这些变量在周围的函数和函数文字之间共享,只要它们可以访问,它们就会存在。


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


func main() {


    x := 1


    y := func() {

        fmt.Println("x:", x)

        x++

    }


    for i := 0; i < 10; i++ {

        y()

    }

}

(Go Playground示例)


查看完整回答
反对 回复 2021-10-11
?
动漫人物

TA贡献1815条经验 获得超10个赞

在全局范围内声明一个 var:


var i = 1


func a() {

  println(i)

  i++

}


查看完整回答
反对 回复 2021-10-11
  • 3 回答
  • 0 关注
  • 362 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信