03-变量和作用域
目录
1 变量声明
1.1标准格式
var 变量名 变量类型 = 值
1.2 不声明类型
说明:此时 类型会自行判断
- 语法
var 变量名 = 值
1.3 不声明值(使用默认值)
- 语法
var 变量名 变量类型
- 默认值
1)数值类型(包括complex64/128)为 0
2)布尔类型为 false
3)字符串为 ""(空字符串)
4)以下几种类型为 int
var a *int
var a []int
var a map[string] int
var a chan int
var a func(string) int
var a error // error 是接口
- 示例
package main
import "fmt"
func main() {
var i int
var f float64
var b bool
var s string
fmt.Printf("%v %v %v %q\n", i, f, b, s)
}
1.4 :=
变量名 := 值
注意
:= 的写法只有在函数内才能生效,在函数外语法报错
如下图 sum := 0 在函数外定义语法报错
如果放在函数内,则语法检测通过
2. 多变量一次声明
2.1 相同类型变量
var vname1, vname2, vname3 type
vname1, vname2, vname3 = v1, v2, v3
var vname1, vname2, vname3 = v1, v2, v3
vname1, vname2, vname3 := v1, v2, v3
2.2 不同类型的变量
var (
vname1 v_type1
vname2 v_type2
)
3. 变量作用域
3.1 局部变量
在函数体内声明的变量称之为局部变量
它们的作用域只在函数体内(参数和返回值变量也是局部变量)。
3.2 全局变量
在函数体外声明的变量称之为全局变量
全局变量可以在整个包甚至外部包(被导出后)使用。
全局变量与局部变量名称相同时,局部变量会被优先考虑