变量
变量的定义:变量是用来存储用户数据的,在编程过程中,会有许多不同的对象类型,那么对于不同的对象类型,我们就需要不同的变量类型来存储不同类型的用户数据。
1.1变量的标准格式
声明变量:语法 var 变量名 变量类型
//实例
var num int
特点:简洁明了,适用于单个变量声明。就是告诉编译器我要一个装整数的箱子
1.2批量格式
实际开发中,会有同时声明多个变量的场景,这个时候就可以使用批量格式,可以使用关键字var和小括号,同时声明多个变量。
//实例
var (
a int
b string
c bool
)
1.3 初始化变量
go语言在声明变量时,会自动对每个变量的内存地址进行初始化。每个变量都会有相应的默认值。
例如:1.整型和浮点型变量的默认值为0
示例:代码的展示
package main
func main() {
var num int
println(num)
}
代码输出:
2.字符串变量的默认值为空字符串。
3.布尔型变量默认为false。
4.切片、映射、函数和指针变量默认为nil。
注:在js中表示为空可以使用null,undefined在js中没有nil的关键词,在go语言中nil表示空值它与js中null,none相同,但是它只能赋值给切片、映射、函数、接口、指针或通道类型。
1.变量初始化格式:
var 变量名 变量类型 = 表达式;
//实例
//声明变量num类型为int并赋值为1
var num int =1
2.编译器推导类型格式
在标准格式基础上,把变量类型省略后,编译器会根据等号右边的表达式推导变量的类型
//实例
//推导数据类型格式初始化变量age值为20
var age = 20
3.更加简洁的写法:短变量声明并初始化
age := 30
注;使用短变量声明并初始化时,编译器同样会根据等号右边的表达式推导变量的类型。相对于前两种变量的初始化方法,短变量声明并初始化方法在开发中使用最为普遍。
练习一、
输出结果
注:在使用短变量声明并初始化时,需注意变量重复声明的情况。
出现重复变量的情况;
no new variables on left side of :=compilerNoNewVar 这就是变量重复的问题。
1.3变量值的交换
在实际开发中,我们经常会碰到变量值的交换,比如需要交换变量a和变量b的值,可以通过中间加入变量c进行交换。
代码实例:
编译结果:
1.3.1多重赋值
在以上通过添加新的变量进行的变量值的转换过于麻烦及代码的冗余维护起来不是特别的方便就用到了多重赋值。
实例:
package main
import "fmt"
func main(){
a:= 1
b:=2
a,b = b,a
fmt.Println(a,b)
}//代码输出结果(2,1)
注:多重赋值时,变量的左值和右值按照从左往右·的顺序依次赋值。
1.4匿名变量
在赋值给多个变量时,如果存在不需要接受值的变量,可以使用匿名变量来代替
//实例
//匿名变量
package main
import "fmt"
func returndata ()(int,int){
return 10,20
}
func main(){
a,_ := returndata()
_,b := returndata()
fmt.Println(a,b)
}
//在Go语言中,a, _的写法主要用于忽略不需要的返回值或变量,
//_, b 的写法主要用于忽略不需要的变量或返回值,
输出结果:
注:1.returndata()是我们自定义的一个函数,对于它的每次调用,会返回10,20两个整数数值。
2.调用returndata()函数,使用变量a接受第一个返回值,第二个返回值由匿名变量接受。
3.调用returndata()函数,使用变量b接受第一个返回值,第二个返回值由匿名变量接受。
由于匿名变量不占用命名空间,也不会分配系统内存,匿名变量与匿名变量之间不会因为多次声明而无法使用。
go语言的数据类型
go语言的常见类型包括整型、浮点型、字符串和布尔型等。还包括有数据类型包括接口和通道等