Go语言-常量

1 常量定义

Go语言中的常量定义从形式上可以分为显式和隐式两种:

  • 显式:const identifier [type] = value
  • 隐式:const identifier = value

隐式定义的常量叫做:无类型常量

分组常量的定义形式和Go语言中变量的分组定义形式一致。

除了通过定义表达式进行常量定义,常量还可以通过一些Go语言的内置表达式进行计算。如使用len()unsafe.Sizeof()等内置表达式进行常量的赋值。

Go语言-常量_第1张图片
image.png

关于大写:

Go语言中的大小写是有特殊含义的,所以,在Go语言中,定义常量不需要像其他语言一样全部大写变量名。

2 常量的类型

常量的类型范围目前仅支持以下几种:

  • 布尔型
  • 数字型(整型,浮点型和复数型)
  • 字符串型

3 特殊常量iota

iota是一个特殊的内置常量,在const关键词出现的位置,iota值将会被重置为0。而const中每新增一行常量声明,iota都会计数一次。

iota常见的用法有如下几种:

  • 跳值使用法
  • 插队使用法
  • 表达式隐式使用法
  • 单行使用法
    下面是一个典型的跳值使用法


    Go语言-常量_第2张图片
    跳值使用法

输出结果如下所示:

a的常量值:0
b的常量值:1
c的常量值:3

下面是一个典型的插队使用法。其中,常量b挤占了本来应该是1的位置,插队了。

package main
import "fmt"

const (
    a = iota
    b = 3.14
    c = iota
)

func main() {
    fmt.Print("a的常量值:")
    fmt.Println(a)
    fmt.Println("\n")

    fmt.Print("b的常量值:")
    fmt.Println(b)
    fmt.Println("\n")

    fmt.Print("c的常量值:")
    fmt.Println(c)
    fmt.Println("\n")
}

输出结果为:

a的常量值:0
b的常量值:3.14
c的常量值:2

4 使用常量定义枚举类型

Go语言中,没有特殊的枚举关键字,我们一般就直接const变量来实现枚举。

const (
     cpp = 1
     python = 2
     golang = 3
)

你可能感兴趣的:(Go语言-常量)