02-常量和变量
发布于 2026-08-20
02-变量和常量
变量
go是静态语言,要求:
-
变量必须先定义后使用
-
变量必须有类型
-
类型定义下来后不能改变
-
变量是有零值的,也就是默认值,例如string只定义未赋值,那就是空字符串
局部变量
变量定义的方式:
- 通过var + 变量名 + 类型
- 通过var + 变量名 + 赋值(可以自定义推导)
全局变量
在全局变量中,是不能使用简写形式的
定义多个变量
通过var ()来定义
也可以这样定义,如果显示声明里类型,必须保持一致
匿名变量
是以_为名称的变量,可以重复声明。
匿名变量的作用在于:go定义的变量必须要使用,而定义成了匿名变量可以不使用,仅做占位。
例如:我的函数返回了两个参数,但是我只想使用第二个,那么就可以使用匿名变量来代替
常量
通过const关键字来定义,也有局部和全局常量
注意:如果连续定义多个常量,其实会默认继承上面的值,常量是没有零值的概念的
iota
iota是一种特殊常量,可以认为是一个可以被编译器修改的常量,从0开始计数。每次出现const的时候,iota重置为0
例1:
iota默认是0,每执行完一行代码后会自增+1

例2:

解释:每次出现const的时候,iota重置为0

变量和常量的作用域范围
变量和常量都是块级作用域。
块级作用域表示一个代码块内,也就是一对大括号包裹的范围内

图中的大括号,也可以用来划分代码范围,让代码更整洁