0. 基本声明语句
变量的声明语句如下:
var 变量名 类型 = 表达式
类型 ,= 表达式 二者可以省略其中的一个:
-
类型省略:根据表达式初始化的值来自动推导类型
-
初始化省略:将用零值来初始化该变量
数值为0值,布尔值为false,字符串为空字符串,接口或者引用类型为nil。
例如:
var s string
fmt.Printf(s)
多个变量的声明,类似于单个变量。
var i,j,k int
var a, b, c = ture, 1, "ABC"
var (
a int = 5
b bool = true
)
1.简短变量声明
名字 := 表达式
a := 1
b := false
c := "abc"
变量的类型根据表达式来自动推导。简短变量的声明一般用于局部变量的声明和初始化,用var来声明的变量常常是需要显式的指定的变量。
简短声明的变量也可以用来函数的返回值来声明和初始化变量:
v, err := os.Open(name)
if err != nil{
return
}
v.Close()
注:
- 简短变量声明左边的变量如果已经使用过,那么
:=在这种情况下只有赋值的作用。 :=声明的语句不能在函数外使用。
2.匿名变量
在使用多重赋值时,如果想要忽略某个值,可以使用匿名变量。 匿名变量用一个下划线_表示,例如:
func f() (string, string) {
return "s", "b"
}
func main() {
x, _ := f()
_, y := f()
fmt.Printf("%s", x)
fmt.Printf("%s", y)
}
匿名变量不占用命名空间,不会分配内存,所以匿名变量之间不存在重复声明。 (在Lua等编程语言里,匿名变量也被叫做哑元变量。)