Go语言变量类型
Go语言变量类型分为三种:局部变量,全局变量,形式参数
类型 | 定义 | 描述 |
局部变量 | 在函数内定义的变量 | 作用域只在函数体内 |
全局变量 | 在函数外定义的变量 | 全局变量可以在整个包甚至外部包(被导出后)使用 |
形式参数 | 函数定义中的变量 | 形式参数会作为函数的局部变量来使用 |
局部变量
在函数体内声明的变量称之为局部变量,它们的作用域只在函数体内,参数和返回值变量也是局部变量。
实例
package main import ( "fmt" ) func main() { var a int = 6 var b int = 9 //var c int c := a + b fmt.Printf("结果: a = %d, b = %d and c = %d ", a, b, c) }
输出结果:
结果: a = 6, b = 9 and c = 15
全局变量
在函数体外声明的变量称之为全局变量,全局变量可以在整个包甚至外部包(被导出后)使用。
实例
package main import ( "fmt" ) var c int func main() { var a int = 6 var b int = 9 //var c int c = a + b fmt.Printf("结果: a = %d, b = %d and c = %d ", a, b, c) }
输出结果:
结果: a = 6, b = 9 and c = 15
Go语言中全局变量可以和局部变量同名,但是在函数中会优先使用局部变量
实例
package main import ( "fmt" ) var c int var d int func main() { var a int = 6 var b int = 9 var d float32 = 3.14 //var c int c = a + b fmt.Printf("结果: a = %d, b = %d, c = %d ,d = %f ", a, b, c, d) }
输出结果
结果: a = 6, b = 9, c = 15 ,d = 3.140000
形式参数
形式参数会作为函数的局部变量来使用。
实例
package main import ( "fmt" ) var a int = 13 func main() { var a int = 6 var b int = 9 fmt.Printf("main()函数中 a = %d ", a); c := sum( a, b); fmt.Printf("main()函数中 c = %d ", c); } func sum(a,b int) int{ fmt.Printf("sum() 函数中 a = %d ", a); fmt.Printf("sum() 函数中 b = %d ", b); num := a + b return num }
输出结果
main()函数中 a = 6 sum() 函数中 a = 6 sum() 函数中 b = 9 main()函数中 c = 15
初始化局部和全局变量
不同类型的局部和全局变量默认值是不同的,系统分别为其设置了默认值
数据类型 | 初始化默认值 |
int | 0 |
float32 | 0 |
pointer | nil |