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\n", 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\n", 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\n", 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\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);
num := a + b
return num
}
输出结果
main()函数中 a = 6
sum() 函数中 a = 6
sum() 函数中 b = 9
main()函数中 c = 15
初始化局部和全局变量
不同类型的局部和全局变量默认值是不同的,系统分别为其设置了默认值
数据类型 | 初始化默认值 |
int | 0 |
float32 | 0 |
pointer | nil |