Go语言变量
1.声明变量
- 标准格式
var 变量名 变量类型
例:var num int
- 批量形式
Go语言变量的批量声明格式如下:
var (
a int
b string
c bool
)
2.初始化变量
Go语言变量默认值:
- 整数和浮点型变量默认值是0
- 字符型变量默认值为空字符串
- 布尔型变量默认为false
- 切片,映射,函数和指针变量默认值为nil
注意:nil等同于其他编程语言的null,None和NULL等,指代零值,在Go中只能赋值给切片,映射,函数,指针,接口或通道类型
- 标准格式
Go语言变量的标准初始化格式:
var 变量名 变量类型 = 表达式
例:var num int = 1
- 编译器推导类型格式
在标准格式基础上省略变量类型后,编译器会根据等号右边的表达式推到变量的类型
例:var age = 20
- 短变量声明并初始化
例:age :=30
短变量声明并初始化方法在开发中使用最为普遍
例:
package main
import "fmt"
func main(){
name, age :="Tom", 18
fmt.Println("name:",name)
fmt.Println("age:",age)
}
执行结果如下:
name: Tom
age: 18
注意:在使用短变量声明并初始化时,需注意变量重复声明的情况。在多个短变量声明并初始化中,应至少有一个新声明的变量出现在左值中。
3.变量值交换
在Go语言中变量值的交换不再通过使用中间变量,而是通过多重赋值的特性,完成变量值的交换工作。
package main
import "fmt"
func main{
a := 1
b := 2
a ,b = b,a
fmt.Println(a)
fmt.Println(b)
}
结果如下
2
1
多重赋值时,变量的左值和右值按照从左到右的顺序依次赋值。
4.匿名变量
再赋值给多个变量时,如果存在不需要接收值的变量,可以使用匿名变量来代替
package main
import "fmt"
func ReturnData() (int,int) {
return 10,20
}
func main{
a,_ := ReturnData()
_,b := ReturnData()
fmt.Println(a,b)
}
结果如下
10 20
由于匿名变量不占用命名空间,也不会分配系统内存,匿名变量与匿名变量之间不会因为多次声明而无法使用。