Go 语言变量名由字母、数字、下划线组成,其中首个字符不能为数字。声明变量的一般形式是使用 var 关键字,格式:var 变量名 变量类型;举例:var test string
也可以同时声明多个变量,格式:var 变量名1,变量名2 变量类型;举例:var test1,test2 string = “test1”,”test2”
示例代码:
package main import "fmt"
func main(){ var test1,test2 = "test1","test2" fmt.Println(test1,test2) var a,b = 1,2 fmt.Println(a,b) } |
变量声明后没有初始化,系统默认为零值。
数值类型(包括complex64/128)为 0
布尔类型为 false
字符串为 ""(空字符串)
以下几种类型为 nil
var a *int //指针 var a []int //切片 var a map[string] int //map var a chan int //这是什么类型? var a func(string) int //函数 var a error // error 是接口 |
两种自推导声明方式:
- 根据值自行判定变量类型:var v_name = value
- 省略 var, 注意 := 左侧如果没有声明新的变量,就产生编译错误,格式:
v_name := value;且这种“:=”声明方式只能用在函数体中,不能用在全局变量的声明中
例如:
var intVal int
intVal :=1 // 这时候会产生编译错误
intVal,intVal1 := 1,2 // 此时不会产生编译错误,因为有声明新的变量,因为 := 是一个声明语句 |
下面这种因式分解关键字的写法一般用于声明全局变量
var (
vname1 v_type1
vname2 v_type2
)