1.5. 第 5 节:常量
5:常量
1:常量定义使用
我们都知道,变量是用来存储数据,并且变量里面存储的值是可以在程序运行时随时发生变化的,但是,常量里面的值确定好后,后面是不允许修改的。下面看一下关于常量的定义使用:
常量的命名规范与变量命名规范一致。
问题:什么场景下会用到常量呢?
在程序开发中,我们用常量存储一直不会发生变化的数据,例如:π,身份证号码等。像这类的数据,在整个程序中运行中都是不允许发生改变的。
package main
import "fmt"
func main0501() {
//var a int = 10
//常量的定义 一般定义常量使用大写字母
const MAX int = 10
//常量可以参与程序的计算
//b:=a+10
//常量不允许左值赋值
//a=a+10//err
//a=100//err
fmt.Println(MAX)
}
func main0502() {
const MAX = "你瞅啥"
//fmt.Println(MAX)
//fmt.Printf("%T\n",MAX )
//go语言常量的地址 不允许访问
//fmt.Printf("%p",&MAX)//err
}
func main0503() {
//计算圆的面积和周长
//面积 PI*r*r math.Pow(r,2)
//周长 2*PI*r
//PI 3.14
//常量必须定义
const PI float64 = 3.14
var r float64
fmt.Scan(&r)
//面积
s := PI * r * r
//周长
l := 2 * PI * r
//fmt.Println(PI)
fmt.Printf("面积:%.2f\n", s)
fmt.Printf("周长:%.2f\n", l)
}
func main() {
//数据区 -》常量区
//字面常量
fmt.Println("hello world")
fmt.Println(3.14)
a := 10
fmt.Println(a + 20)
}
2:字面常量
所谓字面常量(literal),是指程序中硬编码的常量,如:
func main() {
//数据区 -》常量区
//字面常量
fmt.Println("hello world")
fmt.Println(3.14)
a := 10
fmt.Println(a + 20)
}
3:iota枚举
常量声明可以使用iota常量生成器初始化,它用于生成一组以相似规则初始化的常量,但是不用每行都写一遍初始化表达式。
注意:在一个const声明语句中,在第一个声明的常量所在的行,iota将会被置为0,然后在每一个有常量声明的行加一。
具体使用方式如下:
package main
import "fmt"
func main() {
//iota枚举
//iota枚举格式如果写在一行中值相等 如果换行值在上一行加一
//const (
// a = iota
// b, c = iota, iota
//)
//只需要对第一个进行iota赋值 后面会依次增长
//const (
// a = iota
// b
// c
// d
//)
//在定义iota枚举时可以自定义赋值
const (
a = iota
b = 10
c = 20
d
e
f = iota
g
)
//a=100//err
fmt.Println(a)
fmt.Println(b)
fmt.Println(c)
fmt.Println(d)
fmt.Println(e)
fmt.Println(f)
fmt.Println(g)
}