目录
首先我们要了解Go语言的变量命名规则:
变量由字母、数字、下划线组成(首个字符不能为数字--关键字与保留字不能做为变量名)
Go语言中在同一个作用域中的变量命名是不能重复的
(声明变量的时候建议不要手动声明数据类型,因为Go语言会通过数据推导来知道这条数据属于什么数据类型)
我们常见的普通命令方式有以下俩种:
普通声明变量
var num int = 10
var num2 = 10
我们输出一下:
func main() {
var num int = 10
var num2 = 20
fmt.Println(num, num2)
}
//10 20
我们看到了,可以一次性输出俩个变量数据,那么可不可以一次性定义俩个变量?
当然可以--go语言可以一次定义多个变量:
func main() {
var num, num2 = 10, 20
fmt.Println(num, num2)
var str, str2 string = "Hello", "World"
fmt.Println(str, str2)
}
那么问题又来了,我们现在想一次声明多个数据类型不一样的变量,那么我们应该怎么做呢?
func main() {
var (
username string = "小蜗"
age int = 22
hobby string = "打代码"
)
fmt.Println(username, age, hobby)
}
开篇不是说不推荐书写数据类型吗?不写数据类型可以吗?
func main() {
var (
username = "小蜗"
age = 22
hobby = "打代码"
)
fmt.Println(username, age, hobby)
}
sure
短变量声明
什么是短变量,我想我们通过字面意思就知道了---"短!简便!"
没错,简单到我们甚至使用冒号就可以声明变量:
语法:变量名 := 数据
func main() {
username := "张三"
fmt.Println(username)
}
不过短变量有一个需要注意的点---只能在当前函数作用域中使用,不能作为全局变量
很有效的改善了变量的环境污染
假如我们现在再main作用域外声明一个num变量,会报错的--提醒我们不能在全局中声明短变量
而var可以:
我们的短变量同样可以一次声明多个变量:
func main() {
username, age, hobby := "张三", 22, "打代码"
fmt.Println(username, age, hobby)
}
匿名变量
在使用多重赋值的时候,如果我们想要忽略某一个数据,我们可以使用匿名变量
语法:_
匿名函数是不会分配占据内存空间的,所以匿名变量之间是不存在重复声明的问题
现在我们接收并输出了getUsers方法中返回的俩个值:
如果我们只想要username值,不想要age值,我们需要怎么做?
接收的时候只接收一个值吗?
报错了,并不可行
我们可以使用匿名函数: