//声明并且初始化
var a int = 10
var a int // a的初值为int类型的零值:0
默认值就是这个类型的零值
| 类型 | 默认值 |
|---|---|
| 整型 | 0 |
| 浮点型 | 0.0 |
| 布尔 | FALSE |
| 字符串 | "" |
| 指针,接口,切片channel,map,func | nil |
数组、结构体这样复合类型变量的零值就是它们组成元素都为零值时的结果。
变量声明块(block)的语法形式,
var (
a int = 128
b int8 = 6
s string = "hello"
c rune = 'A'
t bool = true
)
省略类型信息的声明:
var b = 13
var b = int32(13)
//多个变量
var a, b, c = 12, 'A', "hello"
短变量声明
a := 12
b := 'A'
c := "hello"
//多个变量
a, b, c := 12, 'A', "hello
包级变量
在包级别可见的变量。如果是导出变量(大写字母开头),那么这个包级变量也可以被视 为全局变量 包级变量只能使用带有 var 关键字的变量声明形式,不能使用短变 量声明形式,但在形式细节上可以有一定灵活度
var ErrShortWrite = errors.New("short write")
var ErrShortBuffer = errors.New("short buffer")
var EOF = errors.New("EOF")
是局部变量
Go 函数或方法体内声明的变 量,仅在函数或方法体内可见