1.变量声明
这些声明变量是等价的
s := ""var s stringvar s = ""var s string = ""
1.1 简短变量声明 (s := “”)
只能在一个函数内部,而 package 级别的变量不应该这么做, 在package 级别这样声明变量,会报语法错误。
名字 := 表达式s := " "
package mainvar 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 = "" # 省略了类型 stringvar s string = ""
其中,”类型” 或 “= 表达式” 两个部分可以省略其中的一个。
如果省略表达式, 那么将用零值初始化该变量。对应类型和初始化关系如下:
| 变量类型 | 初始化值 |
|---|---|
| 数值 | 0 |
| 布尔 | false |
| 字符串 | “”, 空字符串 |
| 接口、引用(slice, map, chan 和函数) | nil |
| 数组或结构体等聚合类型 | 每个元素或字段对应的零值 |
