Golang 基本常量声明及 iota 使用

文章目录

  • 一、局部常量声明
  • 二、全局常量声明
  • 三、多行常量定义,值表达式为空时自动继承前一个
  • 四、常量声明 - iota

一、局部常量声明

package main

import "fmt"

func main() {
	//局部常量声明
	//方式一:主动声明类型
	const lengthA int = 10
	//方式二:省略类型,自动推断类型
	const lengthB = 30

	//多行常量声明
	const (
		//可以主动声明类型
		lengthC int = 40
		//也可以自动推断类型
		lengthD = 50
		//多行声明中的多个变量,可以类型不同
		stringE = "字符串E"
	)

	fmt.Println("lengthA = ", lengthA)
	fmt.Println("lengthB = ", lengthB)
	fmt.Println("lengthC = ", lengthC)
	fmt.Println("lengthD = ", lengthD)
	fmt.Println("stringE = ", stringE)

}

Golang 基本常量声明及 iota 使用_第1张图片

二、全局常量声明

普通声明时,与局部变量声明的方式一致:

package main

import "fmt"

//全局常量声明
//方式一:主动声明类型
const gContA int = 10

//方式二:省略类型,自动推断类型
const gContB = 10

//多行常量声明
const (
	//可以主动声明类型
	gContC int = 40
	//也可以自动推断类型
	gContD = 50
	//多行声明中的多个变量,可以类型不同
	gStringE = "字符串E"
)

func main() {
	fmt.Println("gContA = ", gContA)
	fmt.Println("gContB = ", gContB)
	fmt.Println("gContC = ", gContC)
	fmt.Println("gContD = ", gContD)
	fmt.Println("gStringE = ", gStringE)

}

Golang 基本常量声明及 iota 使用_第2张图片

三、多行常量定义,值表达式为空时自动继承前一个

多行常量声明时,如果常量值表达式为空,则会和前一个常量的值表达式相同。

package main

import "fmt"

//多行常量声明时,如果常量值表达式为空,则会和前一个常量的值表达式相同。
const (
	constA = 10
	constB  //其实等于 constB=10
	constC //其实等于 constC=10
	constD = 30
	constE //其实等于 constE=30
	constF //其实等于 constF=30
)

func main() {
	fmt.Println("constA = ", constA)
	fmt.Println("constB = ", constB)
	fmt.Println("constC = ", constC)

	fmt.Println("constD = ", constD)
	fmt.Println("constE = ", constE)
	fmt.Println("constF = ", constF)
}

Golang 基本常量声明及 iota 使用_第3张图片

四、常量声明 - iota

iota 是常量声明时的一个自增的特殊变量;

iota 在const 内部的第一行出现时,值为0,后续每新增一行,iota都会自增1。(可以理解为行索引或者行号)

具体用法,直接看代码和注释:

package main

import "fmt"

//多行常量声明时,如果常量值表达式为空,则会和前一个常量的值表达式相同。
const (
	//iota=0
	constAA = iota
	//iota=2
	constBB
	//iota=3
	constCC
	//iota=4,constDD = 10 * 4
	constDD = 10 * iota
	//iota=5,constEE = 10 * 5
	constEE
	//iota=6,constEE = 10 * 6
	constFF
	constGG, constHH = iota, iota * 10
	constII, constJJ
)

func main() {
	fmt.Println("constAA = ", constAA)
	fmt.Println("constBB = ", constBB)
	fmt.Println("constCC = ", constCC)

	fmt.Println("constDD = ", constDD)
	fmt.Println("constEE = ", constEE)
	fmt.Println("constFF = ", constFF)
	fmt.Println("constGG = ", constGG)
	fmt.Println("constHH = ", constHH)
	fmt.Println("constII = ", constII)
	fmt.Println("constJJ = ", constJJ)
}

Golang 基本常量声明及 iota 使用_第4张图片

你可能感兴趣的:(Golang,golang,开发语言,后端)