Go 语言中不同类型的变量,需要先声明,才能够被使用。
1.变量声明
Go 语言中声明变量需以 var 关键字开头,变量名放在中间,变量类型放在最后。注意: 行尾无分号。
var 变量名 变量类型
实例:
package main
import "fmt"
var num int // 声明一个整型的变量,被用来保存整数数值
var name string
var price float64 //float64等同于其它语言的double
func main() {
fmt.Println("num=", num)
fmt.Println("name=", name)
fmt.Println("price=", price)
}
运行结果:
num= 0
name=
price= 0
也可以批量声明(省略了每次的var),声明的同时赋初值。
package main
import "fmt"
var (
num int = 100 // 声明一个整型的变量,被用来保存整数数值
name string = "zhangsan"
price float64 = 216.8 //float64等同于其它语言的double
)
func main() {
fmt.Println("num=", num)
fmt.Println("name=", name)
fmt.Println("price=", price)
}
运行结果:
num= 100
name= zhangsan
price= 216.8
编译器推导声明,无需指定类型,类似Javascript的声明方式:
package main
import "fmt"
var (
num = 100 // 声明一个整型的变量,被用来保存整数数值
name = "zhangsan"
price = 216.8 //float64等同于其它语言的double
)
func main() {
fmt.Println("num=", num)
fmt.Println("name=", name)
fmt.Println("price=", price)
}
还可以使用短变量声明与初始化,但是只能在函数体内使用。
package main
import "fmt"
func main() {
num := 100 // 声明一个整型的变量,被用来保存整数数值
name := "zhangsan"
price := 216.8 //float64等同于其它语言的double
fmt.Println("num=", num)
fmt.Println("name=", name)
fmt.Println("price=", price)
}
2.匿名变量
匿名变量就是一个没有名字的变量,通常用下划线 _ 来表示。
这玩意什么场景下会用到呢?
举个例子,假设有这种场景,需要调用某个函数 getStudent(),来查询数据库中某个学生的数据,函数会返回两个数值,分别是:
但是呢,我们只需要获取学生的姓名就行了,年龄并不需要,但是又不想为其单独声明一个变量,这时匿名变量就有用武之地了:
package main
import "fmt"
func getStudent() (string, int) {
return "张三", 23
}
func main() {
name, _ := getStudent()
fmt.Println("姓名:", name)
}
3.多重赋值特性
我们知道在其它编程语言中,要实现两个整数的交换,通常需要借助中间变量。但是Go 语言中利用多重赋值的特性可以轻松实现两个整数的交换。
func main() {
x := 10
y := 7
x, y = y, x
fmt.Println("x=", x, ",y=", y)
}