Go语言-常量

1 常量定义

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

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

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

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

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

image.png

关于大写:

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

2 常量的类型

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

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

3 特殊常量iota

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

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

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


    跳值使用法

输出结果如下所示:

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语言数据类型 Go语言本质是用C语言编写的一套高级开发语言, 所以Go语言中的数据类型大部分都是由C语言演变而...
    极客江南阅读 947评论 0 6
  • 常量是一个简单值的标识符,在程序运行时,不会被修改的量。 常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和...
    谁说我是小小云阅读 259评论 0 1
  • 常量的定义格式 常量的值在编译时就已经确定 常量的定义格式与变量基本相同 使用 const 关键字来定义常量 使用...
    kukela阅读 380评论 0 0
  • 常量 Go语言常量和C语言差不多Go语言定义常量const不能少,数据类型可以不写Go语言定义常量不能用:=Go语...
    AuglyXu阅读 759评论 0 0
  • Go语言的数据类型 C语言的数据类型 Go语言的数据类型 Go语言各数据类型占用内存空间 Go语言中也可以使用si...
    喝酸奶要舔盖__阅读 300评论 0 1