什么是常量

对比变量(variable)用于存储可变的数据常量(constant)用于存储固定不变的数据,比如:

"hello"3.14true
varconst
varconst

在Golang中,有两种常量,分别是:

  • 未定类常量(Untyped Constant)

  • 定类常量(Typed Constant)

下面一一介绍~

未定类常量

声明时未提供类型的常量就是未定类常量(Untyped Constant),比如:

未定类常量具有弹性(flexibility),在可兼容的类型之间转换无需显式转换

constvar
math
定类常量

声明时提供类型的常量就是定类常量(Typed Constant),比如:

不同于未定类常量,定类常量在转换时必须显式转换,否则将会报错

float64的定类常量pifloat32
常量与变量的不同点
  • 常量声明时必须赋值:

  • 常量不能重新赋值,因为常量的值是固定不变的(fixed):

  • 已声明的常量可以不使用,不同于变量一旦声明必须使用:

  • 短声明语法不能用来声明常量:

  • 常量的数据类型只能是基本数据类型的其中一种:

    • bool

    • string

    • int家族

    • float家族

    • complex家族

后面会学到一些类型(比如数组)不能声明为常量,但是如果有新类型是基于基本数据类型的也可以定义为常量:

声明一组常量的语法
math
b==cd==e

c和e都是定类常量,它们与上一行常量类型及数据保持一致

在定义常量组时,如果不提供初始值,则表示将使用上行的表达式,不妨试试:

总结

next time~ :D