Golang 学习笔记——const常量

Golang

This article was last updated on <span id="expire-date"></span> days ago, the information described in the article may be outdated.

Go 语言常量

常量,就是在程序编译阶段就确定下来的值,而程序在运行时则无法改变该值。在 G0 程序中,常量可以是数值类型 (包括整型、浮点型和复数类型)、布尔类型、字符串类型等。

定义常量的语法

定义一个常量使用 const 关键字,语法格式如下:

const constantName [type] = value
/*
const:定义常量关键字
constantName:常量名称
type:常量类型
value:常量的值
*/

示例

package main

func main() {
 const PI float64 = 3.14
 const PI2 = 3.1415 //可以省略类型
    // PI2 = 3.15 不能重新对他赋值
 // 批量声明
 const (
  width  = 100
  height = 200
 )

 //多重赋值
 const i, j = 1, 2
 const a, b, c = 1, 2, "foo"
}

iota 关键字

iota 比较特殊,可以被认为是一个可被编译器修改的常量,它默认开始值是 0,每调用一次加 1。遇到 const 关键字时被重置为 0。e.g.

package main

import "fmt"

func main() {
 // iota 关键字
 const (
  a1 = iota //0
  a2 = iota //类似 i++
  a3 = iota
 )

 fmt.Printf("a1: %v\n", a1) //0
 fmt.Printf("a2: %v\n", a2) //1
 fmt.Printf("a3: %v\n", a3) //2
}

使用 _ 跳过某些值

package main

import "fmt"

func main() {
 // iota 关键字
    // 使用 `_` 跳过某些值
 const (
  a1 = iota //0
  _         //1
  a3 = iota //2
 )

 fmt.Printf("a1: %v\n", a1) //0
 // fmt.Printf("a2: %v\n", a2) //1
 fmt.Printf("a3: %v\n", a3) //2
}

iota 声明中间插队

package main

import "fmt"

func main() {
 // iota 关键字
    // `iota` 声明中间插队
 const (
  a1 = iota //0
  a2 = 100         //100
  a3 = iota //1
 )

 fmt.Printf("a1: %v\n", a1) //0
 fmt.Printf("a2: %v\n", a2) //100
 fmt.Printf("a3: %v\n", a3) //1
}

Author: WhaleFall

Permalink: https://www.whaleluo.top/golang/golang-const-note/

文章默认使用 CC BY-NC-SA 4.0 协议进行许可,使用时请注意遵守协议。

Comments