Golang 基本常量声明及 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)

}

image-20230812164604637

二、全局常量声明

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

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)

}

image-20230812165007065

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

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

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)
}

image-20230812171828206

四、常量声明 - 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)
}

image-20230812173740075

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值