1.概念:
同变量类似,程序执行过程中数值不能改变
2.语法:
- 显式类型定义
- 隐式类型定义
package main
import (
"fmt"
)
func main() {
// 固定值常量
fmt.Println(100)
fmt.Println("hello Go")
// 常量名一般使用大写
const PATH string = "http://www.baidu.com"
const PI = 3.1415026
fmt.Println(PATH)
// PI = 3.15 // 不能修改 cannot assign to PI (untyped float constant 3.1415)
// 定义一组常量
const C1, C2, C3 = 100, 2.2, "GO"
fmt.Println(C1, C2, C3)
const (
MALE = 0
FEMALE = 1
UNKNOWN = 3
)
fmt.Println(MALE, FEMALE, UNKNOWN)
// 一组常量中如果一个常量没有初始值,默认和上一行一致
const (
a int = 10
b
c string = "zs"
d
e float64 = 2.3
f
g bool = true
h
i bool = false
j
)
fmt.Printf("类型为:%T , 值为:%d \n", a, a)
fmt.Printf("类型为:%T , 值为:%d \n", b, b)
fmt.Printf("类型为:%T , 值为:%s \n", c, c)
fmt.Printf("类型为:%T , 值为:%s \n", d, d)
fmt.Printf("类型为:%T , 值为:%f \n", e, e)
fmt.Printf("类型为:%T , 值为:%f \n", f, f)
fmt.Printf("类型为:%T , 值为:%t \n", g, g)
fmt.Printf("类型为:%T , 值为:%t \n", h, h)
fmt.Printf("类型为:%T , 值为:%t \n", i, i)
fmt.Printf("类型为:%T , 值为:%t \n", j, j)
// 定义枚举类型
const (
SPRING = 0
SUMMER = 1
AUTUMN = 2
WINTER = 3
)
fmt.Printf("类型为:%T , 值为:%d \n", SPRING, SPRING)
fmt.Printf("类型为:%T , 值为:%d \n", SUMMER, SUMMER)
fmt.Printf("类型为:%T , 值为:%d \n", AUTUMN, AUTUMN)
fmt.Printf("类型为:%T , 值为:%d \n", WINTER, WINTER)
}

3.常量的注意事项:
- 常量中的数据类型只可以是布尔型、数字型(整数型、浮点型和复数)和字符串型
- 不曾使用的常量,在编译的时候,是不会报错的
- 显示指定类型的时候,必须确保常量左右值类型一致,需要时可做显示类型转换。这与变量就不一样了,变量是可以是不同的类型值