3、常量

发布时间 2023-03-26 17:43:54作者: 我也有梦想呀

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)

}

image

3.常量的注意事项:

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