04-golang常量

golang常量

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

定义常量的格式

语法格式如下:

const constantName [type]= value

cosnt:定义常量关键字

constantName:常量名称

type:常量类型

value:常量的值

实例

package main

import "fmt"

func main() {
    
    
	// 单个定义常量
	const PI float64 = 3.14
	const PI2 = 3.1415 // 可以忽略类型
	fmt.Printf("PI: %v\n", PI)
	fmt.Printf("PI2: %v\n", PI2)

	// 批量定义常量
	const (
		width  = 100
		height = 200
	)
	fmt.Printf("width: %v\n", width)
	fmt.Printf("height: %v\n", height)

	// 多重赋值
	const i, j = 1, 2
	fmt.Printf("i: %v\n", i)
	fmt.Printf("j: %v\n", j)

}

输出结果

PI: 3.14
PI2: 3.1415
width: 100
height: 200
i: 1
j: 2

const 同时声明多个常量时,如果忽略了值则表示和上面一行的值相同。

package main

import "fmt"

func main() {
	const (
		a1 = 100
		a2
		a3
	)
	fmt.Printf("a1: %v\n", a1)
	fmt.Printf("a2: %v\n", a2)
	fmt.Printf("a3: %v\n", a3)
}

输出结果

a1: 100
a2: 100
a3: 100

iota

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

实例

package main

import "fmt"

func main() {
    
    
	const ( 
		a = iota        // 类似于i++
		b = iota
		c = iota
	)
	/*
	也可以写作
	const(
	    a = iota
	    b
	    c

	)
	*/
	fmt.Printf("a: %v\n", a)
	fmt.Printf("b: %v\n", b)
	fmt.Printf("c: %v\n", c)
}

输出结果

a: 0
b: 1
c: 2

使用_跳过某些值

package main

import "fmt"

func main() {
    
    
	const (
		a1 = iota   // 0
		_           // 1
		a2 = iota   // 2
	)
	fmt.Printf("a1: %v\n", a1)
	fmt.Printf("a2: %v\n", a2)
}

输出结果

a1: 0
a2: 2

iota声明中间插队

package main

import "fmt"

func main() {
    
    
	const (
		a1 = iota // 0
		a2 = 100  // 100
		a3 = iota // 101
	)
	fmt.Printf("a1: %v\n", a1)
	fmt.Printf("a2: %v\n", a2)
	fmt.Printf("a3: %v\n", a3)
}

输出结果

a1: 0
a2: 100
a3: 2

猜你喜欢

转载自blog.csdn.net/hanjinjuan/article/details/124800903