介绍go常量枚举使用

// 常量,枚举
package main

import "fmt"

// 方法1
const a int = 10

// 方法2
const (
	b int     = 20
	c float64 = 10 / 3.0
	d int     = a + b
)

// 方法3
const e, f int = 8, 9

const (
	g int = 100
	h     //在常量中,如果没有赋值,则使用上一行的值,即 h = 100
	i     //这里也是等于100
)

const (
	// 常量可以使用内置函数,如len()
	j int = len("abc")
)

// 枚举,加iota表示,其值由0开始递增
const (
	k = iota  // 0
	l         // 1
	m         // 2
)

// 到下一个const关键字后iota归0,重新递增
const (
	n = iota  // 0
	o         // 1
	p         // 2
)

// 常量的访问范围
const (
	// 下划线表示私有
	_MAX_COUNT = 1000
	// 小写的c表示私有
	cTOTAL = 55
	// 大写表示公有
	SUM_AGE = 200
)

/*
偏门的,结果:
1
1024
1048576
*/
const (
	KB = 1 << (iota * 10)
	MB
	GB
)

func main() {
	fmt.Println(a) // 10
	fmt.Println(b) // 20
	fmt.Println(c) // 3.3333333333333335
	fmt.Println(d) // 30
	fmt.Println(e) // 8
	fmt.Println(f) // 9
	fmt.Println(g) // 100
	fmt.Println(h) // 100
	fmt.Println(i) // 100
	fmt.Println(j) // 3

	fmt.Println("以下是枚举:")
	fmt.Println(k) // 0
	fmt.Println(l) // 1
	fmt.Println(m) // 2
	fmt.Println(n) // 0
	fmt.Println(o) // 1
	fmt.Println(p) // 2
	fmt.Println("以下是偏门的:")
	fmt.Println(KB) // 1
	fmt.Println(MB) // 1024
	fmt.Println(GB) // 1048576
}


你可能感兴趣的文章