变量可以从两个角度来理解:
- 可以改变的量,赋值一次还可以随意更改
- 使用多变,可以一次定义,多次使用
变量是指一个包含部分已知或未知数值或信息(即一个值)的存储地址,变量一般具有特定类型和关联名称。
package mainimport "fmt"func main() { var hello string = "Hello World~" fmt.Println("Hello, World!") fmt.Println(hello)}
如上面的代码, hello
就是一个变量。我们来拆解这变量是如何来的:
在 Go 语言中,定义变量使用 var
关键字,
然后定义变量名如 hello
和类型 string
,
最后给这个变量指定一个值 Hello World
。
总结,变量:变量名+类型+值构成。
也可以先声明变量名和类型,最后再给变量赋值,如下面的代码:
package mainimport "fmt"func main() { var x int var y int x = 1014 y = 2021 fmt.Println("x + y = ", x+y)}
变量可以更改
当定义了一个变量,赋值给一个值之后,还可以对这个变量进行修改,比如:
package mainimport "fmt"func main() { var nickName string nickName = "小王" fmt.Println("十年前,人们叫我: ", nickName) // After 10 years nickName = "老王" fmt.Println("十年后,人们叫我: ", nickName)}
同样的变量名 nickName
,在程序中使用两次,代码运行结果:
十年前,人们叫我: 小王十年后,人们叫我: 老王
海象运算符
什么是海象运算符( The Walrus Operator )。因为:=
很像海象——眼睛小,长着两枚长长的牙,是不是很形象。
Go 语言为了方便程序员定义变量,使用这种海象运算符的变量命名方式: hello := "Hello World"
:=
之前并且没有指定变量类型。因为我们不需要指定该类型,因为 Go 编译器能够根据变量值推断类型,然后分配给这个变量。
hello
正在分配一个字符串字面量, hello
就被赋予字符串类型。另外,编译器可以也用 var
语句进行变量类型推导。
hello := "Hello World"var hello2 = "Hello World"
所以之前的数学计算代码也可以写成这样:
package mainimport "fmt"func main() { x := 1024 y := 2021 fmt.Println("x + y = ", x+y)}
变量命名
正确命名变量是软件开发的一个重要部分。 名称必须以字母开头,并且可以包含字母、数字或 _(下划线)符号。 Go 编译器不关心您命名变量的名称,但是最好让变量命名描述清楚,比如名字选择 name
,比命名为 x
更好。
x := "三多"fmt.Println("My cat's name is:", x)name := "柚子"fmt.Println("The other cat's name is:", name)
catName := "柚子"fmt.Println("My cat's name is:", catName)
最后,推荐一个帮助程序员命名的网站:https://unbug.github.io/codelf/,比如我们想命名name,可以搜索看看其他程序员如何命名 name
相关的变量名。
评论(0)