Go语言声明变量
目录
1、var声明变量
重新赋值
2、一次声明多个变量
3、短变量声明法
4、匿名变量
1、var声明变量
var声明变量的方式是:var 变量名称 类型。
package mainimport "fmt"func main() {/*1、var 声明变量var 变量名称 类型变量名称的命名规则:首字符必须是字母或下划线剩余字符可以是字母、数字或下划线*/var userName string = "张三"// 2、声明变量时,可以省略类型,编译器会根据初始值自动推导出类型var age = 20fmt.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 stringa1 = "hello"a2 = "world"fmt.Println(a1, a2)
这种方式只针对同一类型的变量,如果类型不同就会报错。
当需要声明多个不同类型的变量时,上面这种方式就不可取了,就需要换一种声明方式,方式如下:
/*var (变量名称 类型变量名称 类型...)*/var (name stringage int)name = "李四"age = 20fmt.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 mainimport "fmt"var nameName = "张三"func main() {age := 20fmt.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)
这样数据就能正常打印出来,并且不会报错。
匿名变量不会占用命名空间,不会分配内存,所以匿名变量之间不存在重复声明