3.1. 常量与字面常量
常量的定义
一般定义常量使用大写字母,常量里面的值确定好后,后面是不允许修改的
常量可以参与程序的计算
//常量不允许左值赋值
//a=a+10//err
//a=100//err
1. 定义常量
const MAX = "你瞅啥"
2. 运算:计算圆的面积和周长
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)
}
3. 常量的地址,不允许访问
const MAX = "你瞅啥"
//fmt.Println(MAX)
//fmt.Printf("%T\n",MAX )
//go语言常量的地址 不允许访问
//fmt.Printf("%p",&MAX)//err
4. 问题:什么场景下会用到常量呢?
在程序开发中,我们用常量存储一直不会发生变化的数据,例如:π,身份证号码等。像这类的数据,在整个程序中运行中都是不允许发生改变的。
字面常量
所谓字面常量(literal),是指程序中硬编码的常量,如:
-12
3.14159265358979323846 // 浮点类型的常量
3.2+12i // 复数类型的常量
true // 布尔类型的常量
"foo" // 字符串常量
编程语言源程序中表示固定值的符号叫做字面量,也称字面常量。
一般使用裸字符序列来表示不同类型的值。
字面量可以被编程语言编译器直接转换为某个类型的值。
Go的字面量可以出现在两个地方:一是用于常量和变量的初始化,二是用在表达式中作为函数调用实参。
变量初始化语句中如果没有显式地指定变量类型,则Go编译器会结合字面量的值自动进行类型推断。
Go中的字面量只能表达基本类型的值,Go不支持用户自定义字面量。