变量声明
var(
name string = "Tom"
age int = 20
sex string = "male"
)
fmt.Println(name, age, sex)
可以使用上面这种声明的方式,一般来说类型会自动推导。所以简单类型不需要写出来。
所以可以简化成这种:
var(
name = "Tom"
age = 20
sex = "male"
)
fmt.Println(name, age, sex)
以上两个运行结果一样:
还可以使用另一种类型推导的方式:
n1,n2,n3 := "li", 25, "male"
fmt.Println(n1, n2, n3)
fmt.Printf("n1's type = %T, n2's type = %T, n3's type = %T\n", n1, n2, n3)
运行结果为:
匿名变量
在使用多重赋值时,如果想要忽略某个值,可以使用匿名变量(anonymous variable)。 匿
名变量用一个下划线_表示。
这里说明一下go语言定义函数的规则。
func 函数名(形式参数列表)(返回值列表){
函数体
}
所以这里和其他语言的区别在于这里会有两对小括号()
首先定义一个函数,返回值为三个值,然后在主函数中进行调用。
func fun()(string, int, string){
return "han", 22, "fmale"
}
func main(){
var person, _, _ = fun()
fmt.Println(person)
var _, iAge, _ = fun()
fmt.Println(iAge)
var _, _, ssex = fun()
fmt.Println(ssex)
}
运行结果:
这样我们就只用接收我们需要的返回值。不需要的可以直接使用匿名变量忽略。
go语言常量
只是把 var 换成了 const,常量在定义的时候必须赋值。
定义和变量没什么区别
const(
con1 = "const"
con2 = 10
con3 = true
)
fmt.Println(con1, con2, con3)