Go基础:003.常量

72 阅读1分钟

常量,程序运行时,不能被修改。

定义一个常量

package main

import "fmt"

func main() {
	// 定义常量PI
	const PI float32 = 3.14
	var r float32 = 1

	fmt.Println("半径r=1的圆面积为:", PI*r*r)

	r = 2
	fmt.Println("半径r=2的圆面积为:", PI*r*r)

	//修改常量,会报错 cannot assign to PI (neither addressable nor a map index expression)
	// PI = 3.1415
}

定义多个常量

package main

import "fmt"

func main() {
	const (
		LENGTH = 10
		WIDTH  = 4
		HEIGHT = 5
	)

	fmt.Printf("长=%d宽=%d高=%d的长方体体积为=%d\n", LENGTH, WIDTH, HEIGHT, LENGTH*WIDTH*HEIGHT)
}

常量用作枚举

package main

import "fmt"

func main() {
	const (
		Unknown = 0
		Female  = 1
		Male    = 2
	)

	var sex int = 2

	fmt.Println(sex == Male) //true
}

iota常量

iota,特殊常量,第一个iota等于0,每当iota在新的一行被使用时,它的值都会自动加1。

package main

import "fmt"

func main() {
	const (
		a = iota    //0
		b           //1
		c           //2
		d = "hello" //独立值,iota += 1
		e           //独立值,iota += 1
		f = 100     //独立值,iota +=1
		g           //独立值,iota +=1
		h = iota    //7,恢复计数
		i           //8
	)
	fmt.Println(a, b, c, d, e, f, g, h, i) //0 1 2 hello hello 100 100 7 8
}