常量是一个简单值的标识符,在程序运行时,不会被修改的量;
常量中的数据类型只可以是布尔型,数字型(整数型、浮点型和复数)和字符串型。
常量的定义格式:

  1. const identifier [type] = value

可以省略类型说明符[type],因为编译器可以根据变量的值来推断其类型

  • 显式类型定义: const b string = "abc"

  • 隐式类型定义: const b = "abc"

多个相同类型的声明可以简写为:

  1. const c_name1, c_name2 = value1, value2

常量还可以用作枚举:

  1. const (
  2. Unknown = 0
  3. Female = 1
  4. Male = 2
  5. )
  6. (
  7. Unknown = 0
  8. Female = 1
  9. Male = 2
  10. )

数字 0、1 和 2 分别代表未知性别、女性和男性

常量的定义

常量的值在编译时就已经确定
常量的定义格式与变量基本相同
等号右侧必须是常量或者常量表达式
常量表达式中的函数必须是内置函数(len(), cap(), unsafe.Sizeof())
Go语言常量 - 图1

常量的初始化规则和枚举

在定义常量组时,如果不提供初始值,则表示将使用上行的表达式;
使用相同的表达式不代表具有相同的值;
iota是常量的计数器,从0开始,组中每定义1个常量自动递增1;
通过初始化规则与iota可以打到枚举的效果
每遇到一个const关键字,iota就会重置为0
Go语言常量 - 图2

iota,特殊常量,可以认为是一个可以被编译器修改的常量.


Go语言常量 - 图3