美文网首页
2-1 Go --- 变量的定义和赋值

2-1 Go --- 变量的定义和赋值

作者: 捌千里路雲和月 | 来源:发表于2021-06-29 20:44 被阅读0次

    一、什么是变量:本质就是一个名字用来记录数据的值。

    二、为什么使用变量:程序中使用的数据都是存放在内存中的,程序需要使用这个数据就需要读取内存中的数据。而代码直接在内存地址上找数据是很复杂的,所以用一个变量记录使用的数据。以后直接通过这个变量名就能找到内存对应的数据。

    三、如何定义变量:

    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、定义变量的时候,即使类型不一样,变量名都不能相同。不然会报错。

    相关文章

      网友评论

          本文标题:2-1 Go --- 变量的定义和赋值

          本文链接:https://www.haomeiwen.com/subject/qasiyltx.html