- Go语言从入门到精通
- 谢琼编著
- 1226字
- 2025-04-02 16:12:17
3.4.1 变量的基本概念
变量其实就是我们在编写程序时存放数据的地方,由于存放的数据可以随时改变,所以叫作“变”量。变量里存放的数据的常见类型有整数、小数、文字和布尔(boolean)类型等。变量中存放的具体内容,叫作变量的“值”(value)或“取值”,而向变量里存放数据的过程叫作“给变量赋值”。Go语言是一门所谓“强类型”的语言,指必须在赋值前或使用前规定好变量的类型。变量的类型即变量中可以存放的数据的类型,也就是变量值的类型。在程序代码中规定变量类型的过程叫作“声明变量”或“定义变量”。Go语言中声明变量和给变量赋值的基本写法如代码3-9所示。
var a int a = 18
代码3-9 声明变量并赋值
编程中,一般把每一行叫作一条语句,当然也有一行里写多条语句或者一条语句写了多行的情况。注意,自动折行的行还算一行。另外,Go语言中,无须像C、C++、Java等语言那样,每条语句后面要加上分号“;”,这也是Go语言的改进之一。代码3-9中两条程序语句的意思是,定义一个整数类型的变量a,然后把18这个数字存进a这个变量中。
第一条语句中的var是Go语言的关键字,专门用于定义变量。a是我们定义的变量名,int则表示变量的类型为整型(即整数类型)。
第二条语句的意思则是将整数18赋值给a这个变量。注意,这里的等号“=”和数学等号意思完全不同,数学等号“=”的意思是指其两边的数值是相等的,而编程语言中的“=”则代表把等号右边的数值赋给等号左边的变量,类似于数学证明过程中“令a等于18”这种说法,所以我们在编程中也经常说“使a等于18”。我们来看看代码3-10与数学意义的区别。
var a int a = 18 a = a + 1
代码3-10 变量赋值
这几行代码执行的结果是:为变量a赋值为19。因为我们介绍过,变量的值是可以改变的,一开始我们声明了整数类型的变量a,然后“让a等于18”,之后第3行程序又“让a等于a+1”,这时候其实是把a当时的值加上1之后再存放到a中去,a的值实际上就变成了19。这个例子中,我们也可以看到,赋给变量的值可以是单纯的数字,也可以是一个“表达式”,如果是表达式,程序执行时会自动把这个表达式计算后的结果赋值给等号左边的变量。下面,我们把代码3-10加上必需的程序框架代码来执行。在src子目录下新建一个test子目录,然后将代码3-11录入并保存为test子目录下的test.go文件。
package main import ( "fmt" ) func main() { var a int a = 18 a = a + 1 fmt.Println(a) }
代码3-11 test/test.go
可以看到,代码3-11是将代码3-10中的3行代码加上了main包的声明、所需fmt包的导入声明、主函数main和输出变量a的函数fmt.Println之后形成的一套完整的Go语言程序代码。运行该程序(编译后执行或者用go run命令执行)并查看执行结果,如图3.21所示,可以看到用fmt.Println函数输出变量a的值是19,与预期结果相符。

图3.21 变量赋值演示程序的执行结果
为方便起见,本书后面一些简单的代码示例都将用此方法,即修改src目录下的test子目录中的test.go文件并执行,示例代码如果没有必需的程序框架,则需要自行添加,也要加上需要用到的包声明。后面的章节中,我们将简单叙述为“将这段代码录入至test.go文件并执行……”,或更简单的“执行这段代码……”。