Go常量

1. 常量

package main

import "fmt"

func main() {
	/*
	常量:
	1.概念:同变量类似,程序执行过程中数值不能改变
	2.语法:
		显式类型定义: const b string = "abc"
		隐式类型定义: const b = "abc"

	3.常数:
		固定的数值:100,"abc"
	 */
	fmt.Println(100)
	fmt.Println("hello")

	//1.定义常量
	const PATH string = "http:www.baidu.com"
	const PI = 3.14
	fmt.Println(PATH)
	//fmt.Println(PI)

	//2.尝试修改常量的数值
	//PATH = "http://www.sina.com" //cannot assign to PATH

	//3.定义一组常量
	const C1, C2, C3 = 100, 3.14, "haha"
	const (
		MALE   = 0
		FEMALE = 1
		UNKNOW = 3
	)
	//4.一组常量中,如果某个常量没有初始值,默认和上一行一致
	const (
		a int = 100
		b
		c string = "ruby"
		d
		e
	)
	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,%s\n", e, e)

	//5. 枚举类型:使用常量组作为枚举类型。一组相关数值的数据
	const (
		SPRING = 0
		SUMMER = 1
		AUTUMN = 2
		WINTER = 3
	)

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

}

2. iota 

package main

import (
	"fmt"
)

func main() {
	/*
	iota:特殊的常量,可以被编译器自动修改的常量
		每当定义一个const,iota的初始值为0
		每当定义一个常量,就会自动累加1
		直到下一个const出现,清零
	 */
	const (
		a = iota // 0
		b = iota // 1
		c = iota //2
	)
	fmt.Println(a)
	fmt.Println(b)
	fmt.Println(c)

	const (
		d = iota // 0
		e        // 1
	)
	fmt.Println(d)
	fmt.Println(e)

	//枚举中
	const (
		MALE   = iota // 0
		FEMALE  // 1
		UNKNOW  // 2
	)
	fmt.Println(MALE, FEMALE, UNKNOW)

}
package main

import "fmt"

func main() {
	const (
		A = iota // 0
		B // 1
		C // 2
		D = "haha" // iota = 3
		E // haha iota = 4
		F = 100 //iota =5
		G //100 iota = 6
		H = iota // 7
		I //iota 8
	)
	const (
		J = iota // 0
	)
	fmt.Println(A)
	fmt.Println(B)
	fmt.Println(C)
	fmt.Println(D)
	fmt.Println(E)
	fmt.Println(F)
	fmt.Println(G)
	fmt.Println(H)
	fmt.Println(I)
	fmt.Println(J)
}

 

posted @ 2020-01-10 01:30  1769987233  阅读(112)  评论(0编辑  收藏  举报