Golang之变量

95 阅读1分钟

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等编程语言里,匿名变量也被叫做哑元变量。)