Go编程基础04-常量与运算符

常量的定义

  • 常量的值在编译时就已经确定
  • 常量的定义格式与变量基本相同
  • 等号右侧必须是常量或常量表达式
  • 常量表达式中的函数必须是内置函数
package main

import "fmt"

// 常量定义
const a int = 1
const b = 'A'

// 常量组
const (
	c = a
	d = a + 2
	e, f = 1, 'B'
)

func main() {
	fmt.Println(a) // 1
	fmt.Println(b) // 65
	fmt.Println(c) // 1
	fmt.Println(d) // 3
	fmt.Println(e) // 1
	fmt.Println(f) // 66
}

常量的初始化规则与枚举

  • 在定义常量组时,如果不提供初始值,将使用上一行的表达式。(如果要使用该规则,要求每一行的常量个数相同
package main

import "fmt"

// 常量组
const (
	c = 1
	d
	e
)

func main() {
	fmt.Println(c) // 1
	fmt.Println(d) // 1
	fmt.Println(e) // 1
}

表达式与常量表达式的区别在于常量表达式的值是确定的,可知的

-iota是常量的计数器,从0开始,常量组中每定义一个常量,则递增加1.
通过初始化规则与iota可以达到枚举的效果;
每遇到一个const关键字,iota就会重置为0.

package main

import "fmt"

// 常量组
const (
	a = 'A'  // 此时iota=0
	b        // 继承A的表达式'A',iota=1
	c        // 继承A的表达式'A',iota=2
	d = iota // 继承A的表达式'A',iota=3
)

const (
	e = iota // 遇到新的const,iota=0
)

func main() {
	fmt.Println(a) // 65
	fmt.Println(b) // 65
	fmt.Println(c) // 65
	fmt.Println(d) // 65
	fmt.Println(e) // 0
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值