const

  • const关键字来创建常量,常量具有只读属性,不允许被修改
  • const可以创建枚举类型

    使用const创建常量

    使用const关键字来创建常量:

    package main
    
    import "fmt"
    
    func main() {
      // 常量(只读属性)
      const length int =19
      fmt.Println("length = ", length)
    }

    运行结果:
    image.png
    成功创建一个常量

另外常量不可以被修改:

package main

import "fmt"

func main() {
    // 常量(只读属性)
    const length int =19
    fmt.Println("length = ", length)

    length = 100
}
  • 第10行尝试修改常量length

运行结果:
image.png
可以看到常量不允许被修改

const创建枚举类型

const可以创建枚举类型:

// const定义枚举类型
const (
    SHANGHAI = 0
    BEIJING = 1
    SHENGZHEN = 2
)

iota关键字

  • iota是golang语言的常量计数器,只能在常量的表达式中使用

    iota基础用法

    在上面const创建枚举类型的案例中可以发现每一个地名需要对应指定一个值,并且依次加1,这种过程可以使用iota来简化书写。

上面的枚举类型可以使用iota来简化代码:

package main

import "fmt"

// const定义枚举类型
const (
    SHANGHAI = iota // iota = 0
    BEIJING // iota = 1
    SHENGZHEN  // iota = 2
)


func main() {
    fmt.Println("SHANGHAI = ",SHANGHAI)
    fmt.Println("BEIJING = ",BEIJING)
    fmt.Println("SHENGZHEN = ",SHENGZHEN)
}
  • 第7行:iota在const关键字出现时将被重置为0

运行结果:

iota参与运算

iota还可以参与数学运算,例如:

package main

import "fmt"

// const定义枚举类型
const (
    SHANGHAI = iota*2 // iota = 0
    BEIJING // iota = 1
    SHENGZHEN  // iota = 2
)


func main() {
    fmt.Println("SHANGHAI = ",SHANGHAI)
    fmt.Println("BEIJING = ",BEIJING)
    fmt.Println("SHENGZHEN = ",SHENGZHEN)
}
  • 第7行iota*2 ,下依次都参加运算

运行结果:
image.png

iota进阶使用

iota同行定义多个常量使用:

package main

import "fmt"

// iota单行多定义常量
const (
    a, b = iota+1, iota+2 // iota = 0, a = iota+1, b = iota+2, a = 1,b = 2
    c, d                   // iota = 1, c = iota+1, d = iota+2, c = 3,d = 4
    e, f                   // iota = 2, e = iota+1, f = iota+2, e = 5,f = 6

    g, h = iota * 2,iota * 3 // iota = 3, g = iota*2, h = iota*3, g = 6,h = 9
    i, j                      // iota = 4, i = iota*2, j = iota*3, i = 8,j = 12
)


func main() {
    fmt.Println("a = ", a, "b = ", b)
    fmt.Println("c = ", c, "d = ", d)
    fmt.Println("e = ", e, "f = ", f)
    fmt.Println("g = ", g, "h = ", h)
    fmt.Println("i = ", i, "j = ", j)
}
  • 7-9行,每行定义两个常量,依次加1
  • 11-12行,每行的常量使用乘法运算

运行结果:
image.png

iota使用注意点

  • iota只能配合const()一起使用,iota只有在const进行累加效果
最后修改:2024 年 03 月 13 日
如果觉得我的文章对你有用,请随意赞赏