变量
变量是几乎所有编程语言中最基本的组成元素,变量是程序运行期间可以改变的量,举例:
比如你生了个娃,然后起了个名字入了户口var name string="小明"
,但是这个娃长大之后就不喜欢这个名字了,他就决定改一个名字改成老王name="老王"
,以后这个娃的名字就变成了老王,这就是变量。
从根本上说,变量相当于是对一块数据存储空间的命名,程序可以通过定义一个变量来申请一块数据存储空间,之后可以通过引用变量名来使用这块存储空间。
一、变量声明
Go
语言的变量声明方式与C
和C++
语言有明显的不同。对于纯粹的变量声明,Go
语言引入了关键字var
,而类型信息放在变量名之后,示例如下:
var x1 int
var x2 int
//一次定义多个变量
var x3, x4 int
var (
x5 int
x6 int
)
var
就是说你这是声明的一个变量,x1是自己起的变量名字,int
是你给他指定的数据类型,像var x1 int
,你打印出来这个代码的话结果为0
就像孩子刚生出来就是0
岁一样。
二、变量初始化
对于声明变量时需要进行初始化的场景,var
关键字可以保留,但不再是必要的元素,如下所示:
var x1 int = 10 // 方式1
var x2 = 10 // 方式2,编译器自动推导出x2的类型
x3 := 10 // 方式3,编译器自动推导出x3的类型
fmt.Println("x3 type is ", reflect.TypeOf(x3)) //x3 type is int
//出现在 := 左侧的变量不应该是已经被声明过,:=定义时必须初始化
var x4 int
x4 := 2 //err
初始化的意思就是说别的孩子刚生出来都是0岁,我让我孩子刚生出来就是10岁,也就是var x1 int =10
这样就行了。
三、变量赋值
var x1 int
x1 = 123
var x2, x3, x4 int
x2, x3, x4 = 1, 2, 3 //多重赋值
i := 10
j := 20
i, j = j, i //多重赋值
你要是想要你的孩子长快一点你就可以自己给他定义岁数,比如我孩子是 var x1 int
默认是0
岁,我可以x1=100
岁这样子我孩子就100
岁了,这就是简单的赋值。
四、 匿名变量
_(下划线)是个特殊的变量名,任何赋予它的值都会被丢弃:
_, i, _, j := 1, 2, 3, 4
func test() (int, string) {
return 88, "old"
}
_, str := test()