「这是我参与2022首次更文挑战的第11天,活动详情查看:2022首次更文挑战」。
0 环境
- 系统环境:win10
- 编辑器:vscode
- go版本:gol.17.3
1 导图
涉及变量和常量简写,以及注意事项,还有一个零值,类似Java的默认值。
=后面应该改为表达式更为贴切,懒的改了。因为Go语言自备类型推导功能,简写起来很方便。而且不仅支持int类型,float64、bool、string等等基础类型都是可以被自动推导的。
2 变量
变量意味着可变的数据类型,可被一次或多次修改,有点像新买的水杯,正常可被重复使用。也可以理解为海王,在某一瞬间是属于你的。
格式 var 变量名 类型 = 表达式
1 零值
当你不给变量设定一个的值的时候,自动给你一个默认值(根据类型初始值)。对了和
Java中的String不一样,这里的是小写,别搞错了。
var zv int
var zv1 float64
var zv2 bool
var zv3 string
fmt.Println(zv3,zv,zv1,zv2)
fmt.Println(zv,zv1,zv2,zv3)
2 赋值
因为类型推导,在函数内可以,多个变量,用
var (变量名 = 表达式 ...),或者用变量名, 变量名,... = 表达式,但是全局只能用var(xxx)或var 变量名 = 表达式。
函数内的用法
func variableDemo() {
var i int = 20
var j = 20
k := 20
fmt.Println("i ==>", i," j ==>", j," k ==>", k)
var (
a = 1
b = 2
c = 3
)
fmt.Println("a ==>", a," b ==>", b," c ==>", c)
e, f, d := 11, 12, 13
fmt.Println("e ==>", e," f ==>", f,"d ==>", d)
}
全局变量下的用法
图下可以看出,当我们在全局变量中使用
:=,直接给我们提示,不能这么写。
3 常量
常量的值是指在编译期就已经确定好的,一旦确定好了之后就不能在被修改了,这样一来就可以避免在运行期被恶意篡改。和变量的区别,多了个固定(或者叫写死)。就像转行后并成功上岸,转为有编制的公务员,一旦确定了(编制),基本上是铁饭碗了。写法和变量差不多,将
var变为const。
只允许以下布尔型、字符串、数字类型这些基础类型作为常量
const a = "hello"
1 iota
iota 它是一个常量生成器(别和整型转字符串的方法混了),它可以被用来初始化类似规律的常量,为了避开重复的初始化。
const(
a = 1
b = 2
c =3
d =4
)
// 一样的效果
const(
a = iota + 1
b
c
d
)
总结
对于变量,可以不初始化,使用默认值(零值),也可以一次声明一个或多个变量,把要声明的多个变量放到一个括号中即可。对于常量,声明常量时(对于基础类型是有限制的),写法和变量类似,假如声明多个常量,并且具有规律性,就可以用
iota来进行声明(避免烦琐的初始化)。注意::=不能用于全局变量。