时间:2021-05-22
作用域为已声明标识符所表示的常量、类型、变量、函数或包在源代码中的作用范围。
Go 语言中变量可以在三个地方声明:
接下来让我们具体了解局部变量、全局变量和形式参数。
在函数体内声明的变量称之为局部变量,它们的作用域只在函数体内,参数和返回值变量也是局部变量。
以下实例中 main() 函数使用了局部变量 a, b, c:
package mainimport "fmt"func main() {var a, b, c inta = 10b = 20c = a + bfmt.Printf ("结果: a = %d, b = %d and c = %d\n", a, b, c)}以上实例执行输出结果为:
结果: a = 10, b = 20 and c = 30
在函数体外声明的变量称之为全局变量,全局变量可以在整个包甚至外部包(被导出后)使用。
全局变量可以在任何函数中使用,以下实例演示了如何使用全局变量:
package mainimport "fmt"var g intfunc main() {var a, b inta = 10b = 20g = a + bfmt.Printf("结果: a = %d, b = %d and g = %d\n", a, b, g)}以上实例执行输出结果为:
结果: a = 10, b = 20 and g = 30
Go 语言程序中全局变量与局部变量名称可以相同,但是函数内的局部变量会被优先考虑。实例如下:
package mainimport "fmt"var g int = 20func main() {var g int = 10fmt.Printf ("结果: g = %d\n", g)}以上实例执行输出结果为:
结果: g = 10
形式参数会作为函数的局部变量来使用。实例如下:
package mainimport "fmt"var a int = 20;func main() {var a int = 10var b int = 20var c int = 0fmt.Printf("main()函数中 a = %d\n", a);c = sum( a, b);fmt.Printf("main()函数中 c = %d\n", c);}func sum(a, b int) int {fmt.Printf("sum() 函数中 a = %d\n", a);fmt.Printf("sum() 函数中 b = %d\n", b);return a + b;}以上实例执行输出结果为:
main()函数中 a = 10
sum() 函数中 a = 10
sum() 函数中 b = 20
main()函数中 c = 30
不同类型的局部和全局变量默认值为:
数据类型 初始化默认值 int 0 float32 0 pointer nil
形参使用,比较 sum 函数中的 a 和 main 函数中的 a,sum 函数中虽然加了 1,但是 main 中还是原值 10:
package mainimport "fmt"var a int = 20func main() {var a int = 10var b int = 20var c int = 0fmt.Printf("main()函数中 a = %d\n", a)c = sum(a, b)fmt.Printf("main()函数中 a = %d\n", a)fmt.Printf("main()函数中 c = %d\n", c)}func sum(a, b int) int {a = a + 1fmt.Printf("sum() 函数中 a = %d\n", a)fmt.Printf("sum() 函数中 b = %d\n", b)return a + b}输出为:
main()函数中 a = 10
sum() 函数中 a = 11
sum() 函数中 b = 20
main()函数中 a = 10
main()函数中 c = 31
以上就是详解Go 语言变量作用域的详细内容,更多关于Go 语言变量作用域的资料请关注其它相关文章!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
javascript作用于作用域链的详解一、JavaScript作用域任何程序设计语言都有作用域的概念,简单的说,作用域就是变量与函数的可访问范围,即作用域控制
C语言全局变量和局部变量详解核心内容:1、局部变量和全局变量变量按照作用域分为:全局变量和局部变量全局变量的作用域:从定义位置开始到下面整个程序结束。局部变量的
一、变量的作用域要理解闭包,首先必须理解Javascript特殊的变量作用域。变量的作用域无非就是两种:全局变量和局部变量。Javascript语言的特殊之处,
一、变量的作用域要理解闭包,首先必须理解Javascript特殊的变量作用域。变量的作用域无非就是两种:全局变量和局部变量。Javascript语言的特殊之处,
每种编程语言,其变量都有一定的有效范围,超过这个范围之后,变量就失效了,这就是变量的作用域。从数学的角度来看,就是自变量的域。作用域是变量的可访问范围,即作用域