一、什么是变量:本质就是一个名字用来记录数据的值。
二、为什么使用变量:程序中使用的数据都是存放在内存中的,程序需要使用这个数据就需要读取内存中的数据。而代码直接在内存地址上找数据是很复杂的,所以用一个变量记录使用的数据。以后直接通过这个变量名就能找到内存对应的数据。
三、如何定义变量:
1、定义(声明)一个变量。
var 定义变量关键字:var name string —— 定义一个字符串变量 name。var age int —— 定义一个整形变量 age。
2、零值:只定义了变量,但没有赋值的时候。变量会有一个初始值(默认值),就是零值。也就是说 name、age 这两个变量都有零值。
3、go run 执行程序,打印输出变量 name 和 age 的零值。name 变量是字符串,它的零值是空值。age 变量是整形数值,它的零值是 0。
四、定义变量的几种方法。
1、单行定义变量 和 单行打印输出。
红色方框:程序定义变量是一行一行声明,每行只定义一个变量。
优点:可以定义不同类型的变量。缺点:较为繁琐。
黄色方框:单行打印输出,程序执行完一行输出再执行下一行输出。所以结果也是分两行。
2、批量定义变量 和 批量打印输出。
var a1, a2 int 批量定义了两个变量,分别是 a1 和 a2。
优点:快速便捷。缺点:只支持同类型的变量定义。
fmt.Println(a1, a2) 批量打印输出 a1 和 a2 的结果,一行输出所含的变量值,不隔行。
3、批量定义多类型变量 和 批量打印输出。
var()括起来的范围可以批量定义多类型变量。这种方法糅合了单行定义变量 和 批量定义的优点。既可以批量定义多个变量,也支持定义类型。
fmt.Println(n1, s1, n2, s2) 批量打印输出 n1、s1、n2 和 s2 的结果,不隔行。s1 和 s2 的零值是空值,糅合在n1 和 n2 中输出。黄色方框 和 绿色方框 的区域其实是 s1 和 s2 的零值。并不是空格。
五、变量的赋值。
1、name = "小明" —— 把"小明"赋值到 name 变量,name 现在的值就是 "小明"。(字符串赋值需要加 "" 双引号括住内容)
age = 10 —— 把 10 赋值到 age 变量,age 现在的值就是 10。
2、执行程序输出的结果就是赋值到 name 和 age 的 小明 和 10。
3、另一种赋值方法,一行完成赋值。
红色方框:name 的值是 小明。age 的值是 10。
name, age = "小红", 18。一行完成了变量的赋值。左边是变量,右边是对等的值。这种赋值形式的意思是,右一开始的值 依次赋值到 左一开始的变量。如黄线 "小红" 赋值到 name 变量,橙线 18 赋值到 age。
name 和 age 首先赋值为 ”小明“ 和 10。然后,name 赋值为 ”小红“,age 赋值为 18。那么,输出的 name 和 age 会是 ”小明“ 和 10 ?还是 ”小红“ 和 18 ?
因为程序是由上而下执行命令语句的。所以 name 和 age 首先赋值为 "小明" 和 10后,还接受了另一次的赋值过程,就是 name, age = "小红", 18。此时,name 和 age 的值变为 "小红" 和 18。fmt.Println(name) 和 fmt.Println(age) 只打印输出变量最后一次的值。不论变量此前曾赋值多少次。
变量可以接收不同内容的赋值,可以把 ”小红“ 赋值到 name,把 18 赋值到 age,只要类型一致可以赋任意内容的值。 变量就是能够更好处理一类数据,而不是一个数据。变量的值是可以变化的。
tips:注意事项
1、采用一行赋值的方法。一定要左边变量的数量 和 右边数值的数量要一致,不然会报错。
cannot assign 1 values to 2 variables,不能将1个值赋给2个变量。
2、输入时注意输入状态,程序编写一定要 En 英文状态下的标点符号。中文状态的标点符号会报错。
expected ';', found 'ILLEGAL',提示有非法符号。
3、string 字符串需要用双引号 ” “ 引起来,没有用双引号" " 引起来也会报错。
同理,int 整形数值不需要用双引号 " " 引起来,用了双引号 " " 引起来也会报错。
4、函数体内部定义了变量要使用,不使用程序会报错。变量的赋值不算使用变量,fmt.Println(name) 和 fmt.Println(age) 这样打印输出才算使用变量。把 fmt.Println(name) 和 fmt.Println(age) 注释掉,程序报错:name declared but not used 和 age declared but not used。提示 name 和 age 已经定义了,但是没有使用。
5、定义变量的时候,即使类型不一样,变量名都不能相同。不然会报错。
网友评论