目录
1、var声明变量
var声明变量的方式是:var 变量名称 类型。
package main
import "fmt"
func main() {
/*
1、var 声明变量
var 变量名称 类型
变量名称的命名规则:
首字符必须是字母或下划线
剩余字符可以是字母、数字或下划线
*/
var userName string = "张三"
// 2、声明变量时,可以省略类型,编译器会根据初始值自动推导出类型
var age = 20
fmt.Printf("name: %s, age: %d", userName, age)
}
重新赋值
Go语言中的变量需要声明后才能使用,同一作用域内不支持重复声明。
// 错误写法
var nameName = "李四"
var nameName = "王五"
fmt.Println(nameName)
这样就会报错,不能给同一个变量重复声明,当我们需要为一个变量重新赋值时,做法如下:
var nameName = "李四"
nameName = "王五"
fmt.Println(nameName)
这样就可以重新赋值了,打印结果就是王五。
2、一次声明多个变量
第一种声明方式:var 变量名称,变量名称,... 类型。
// var 变量名称,变量名称,... 类型
var a1, a2 string
a1 = "hello"
a2 = "world"
fmt.Println(a1, a2)
这种方式只针对同一类型的变量,如果类型不同就会报错。
当需要声明多个不同类型的变量时,上面这种方式就不可取了,就需要换一种声明方式,方式如下:
/*
var (
变量名称 类型
变量名称 类型
...)
*/
var (
name string
age int
)
name = "李四"
age = 20
fmt.Println(name, age)
将要声明的变量用括号包起来,在变量名后面指定它的类型,一行只能声明一个变量。
也可以在声明时就直接赋值,代码如下:
var (
name = "张三"
age = 20
)
fmt.Println(name, age)
3、短变量声明法
在函数内部,可以使用更简略的 := 方式声明并初始化变量。
// 短变量声明法
name := "张三"
fmt.Println(name)
// 使用短变量一次声明多个变量,并初始化变量
a, b, c := 10, 20, "C"
fmt.Println(a, b, c)
但是要注意的是,短变量只能用于声明局部变量,不能用于全局变量的声明
package main
import "fmt"
var nameName = "张三"
func main() {
age := 20
fmt.Printf("name: %s, age: %d", nameName, age)
}
4、匿名变量
在使用多重赋值时,如果想要忽略某个值,可以使用匿名变量,用一个下划线 _ 表示。
func getUserInfo() (string, int) {
return "张三", 20
}
就比如我重新声明了一个函数,它返回两个数据,类型分别是string和int
name, age := getUserInfo()
fmt.Println(name, age)
在main函数中声明两个变量,将getUserInfo函数中返回的数据赋值给这两个变量并打印出来。
如果出现一种情况,就是我现在只希望获取getUserInfo函数中返回的第一个数据,第二个不需要,这样就不能声明多个变量,因为我们声明的变量必须要使用,不然会报错,因此就需要使用到匿名变量。代码如下:
_, age := getUserInfo()
fmt.Println(age)
这样数据就能正常打印出来,并且不会报错。
匿名变量不会占用命名空间,不会分配内存,所以匿名变量之间不存在重复声明