1.变量声明
这些声明变量是等价的
s := ""
var s string
var s = ""
var s string = ""
1.1 简短变量声明 (s := “”)
只能在一个函数内部,而 package 级别的变量不应该这么做, 在package 级别这样声明变量,会报语法错误。
名字 := 表达式
s := " "
package main
var s1 = "afaf"
s2 := "afaf"
func main() {
println(s1)
println(s2)
}
# command-line-arguments
./param_1.go:4:1: syntax error: non-declaration statement outside function body
1.2 var 声明语句
var 变量名 类型
var 变量名 = 表达式
var 变量名 类型 = 表达式
eg:
var s string # 省略了 = "", 依赖于string类型的内部初始化机制,被初始化为空字符串。
var s = "" # 省略了类型 string
var s string = ""
其中,”类型” 或 “= 表达式” 两个部分可以省略其中的一个。
如果省略表达式, 那么将用零值初始化该变量。对应类型和初始化关系如下:
变量类型 | 初始化值 |
---|---|
数值 | 0 |
布尔 | false |
字符串 | “”, 空字符串 |
接口、引用(slice, map, chan 和函数) | nil |
数组或结构体等聚合类型 | 每个元素或字段对应的零值 |