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

定义常量的语法

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

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

实例

package main

func main() {
	const PI float32 = 3.14
	const PI2 = 3.1415 //可以省略类型

	const (
		width = 100
		height = 200
	)
	const i, j, k = 1, 2, "hei"//多重赋值
	
}
iota

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

package main

import "fmt"

func main() {
	const (
		a1 = iota
		a2 = iota
		a3 = iota
	)

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

 使用 _ 跳过某些值

package main

import "fmt"

func main() {
	const (
		a1 = iota
		_
		a2 = iota
	)

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

iota声明中间插队

package main

import "fmt"

func main() {
	const (
		a1 = iota
		a2 = 100
		a3 = iota
	)

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