Go中局部全局变量的区分
程序员文章站
2022-05-04 13:53:02
这是可能也许是容易混淆滴,先上1个例子: 上面会输出: 我们稍微改动下: 上面会输出: 可见声明的全局变量var nickname 在函数change里面重载更新了,再次输出时已经是被更新后的值。我们再看一个函数变量域 上面会输出: 通过上面几个例子,我想大家也应该有深入的理解啦。 ......
这是可能也许是容易混淆滴,先上1个例子:
package main import "fmt" var nickname = "大虾" func main() { show() //大虾 change() //小虾 show() //大虾 fmt.print(nickname) //大虾 } func show() { print(nickname) } func change() { nickname := "小虾" print(nickname) }
上面会输出:
大虾大虾小虾大虾
我们稍微改动下:
package main import "fmt" var nickname = "大虾" func main() { show() //大虾 change() //小虾 show() //这里不再是 大虾 而是 虾 fmt.println(nickname) //这里不再是 大虾 而是 虾 } func show() { print(nickname) } func change() { nickname = "小虾" // 注意这里不再是 nickname := "小虾" print(nickname) }
上面会输出:
大虾小虾小虾小虾
可见声明的全局变量var nickname 在函数change里面重载更新了,再次输出时已经是被更新后的值。
我们再看一个函数变量域
package main var nickname string func main() { nickname = "大虾" print(nickname) //大虾 change() println(nickname) //大虾 } func change() { nickname := "小虾" print(nickname) //小虾 show() //大虾 上面只是nickname := 只是初始化声明变量。仅在函数内有效,全局变量nickname未变 } func show() { print(nickname) }
上面会输出:
大虾小虾大虾大虾
通过上面几个例子,我想大家也应该有深入的理解啦。
上一篇: 末世王者什么手机能玩 适配手机型号一览表
下一篇: Java环境变量,真的还有必要配吗?
推荐阅读
-
全面了解PHP中的全局变量,全面了解全局变量
-
JavaScript中全局变量、函数内变量以及常量表达式的效率测试_javascript技巧
-
PHP中超全局变量$GLOBALS和global的区别详解
-
js全局变量在其他方法中赋值后无法影响到该方法外的全局变量的值(奇葩问题)
-
如何获得匿名函数中的方法或值-解少全局变量的污染
-
python函数的全局变量、局部变量
-
js函数,局部变量,全局变量,和重载的问题
-
Visual Studio中根据系统区分引用64位、32位DLL动态库文件的配置方法
-
Visual Studio中根据系统区分引用64位、32位DLL动态库文件的配置方法
-
nodejs中全局变量的实例解析