go学习笔记(5)基本类型和声明(4)
今天是元宵节,大家吃汤圆了吗🍜?
继续讲 go 的基本类型。
常量
和其他语言一样,go 也能定义常量。
1 | const x int64 = 100 |
基本上和 var
的写法类似。
在 go 语言中,const
等于是给字面量命名,它只能保存编译器在编译时能得到的值。大概有如下几类:
- 数值字面量
true
和false
- 字符串
- 字符
- 内置函数
complex
、real
、imag
、len
及cap
- 能在编译时确定值的表达式
go 不能保证一个在运行时计算出来的值是不变的。
有类型及无类型常量
常量可以有类型也可以是无类型的。
无类型常量就和字面量一样,它本身没有类型,但如果在使用时不能推断出类型,那它将是它字面量的默认类型。
1 | const a = 123 |
有类型常量只能与其类型相同的变量进行计算和赋值。
未使用的变量
go 有一个非常强势的语法规定,go 要求每一个被定义的 局部变量 都必须被使用。否则会报一个编译错误。这能很大程度减少代码冗余,提高代码质量。
但是 go 编译器的检查相对是比较宽松的,只要变量被读取一次就不会再报错了,就算又对变量赋值但后面没使用也不管了。
1 | func main(){ |
如果想发现这类问题可以使用 golangci-lint
go 语言可以定义未使用的 包级别的变量 。
go 语言允许创建 未使用的常量 。