go语言基础之常量

介绍

常量是指在编译期间就确定下来的值,程序在运行期间并没有办法更改该值。在Go语言中,常量可以是数值类型(包括整型,浮点型和复数类型)、布尔类型或者是字符串类型。

1. 常量的定义

在Go语言中,定义常量可以使用const关键字,并且设置一个相对友好的常量名。
语法:

const constName = value 

例如,

const Name = "张三"

你也可以给常量指定一个类型:

const u, v float32 = 0, 3 // u = 0.0, v = 3.0,常量的多重赋值

Go语言可以给常量设置一个类型,但是并不是必须的。如果没有在定义常量时指定类型,那么就是一个无类型常量
需要注意的是,常量的赋值行为是一个编译期行为,所以右值(等号右边的值)不能出现任何需要运行期间才能得出结果的表达式,否则会导致编译错误。如下:

const Home = os.GetEnv("HOME") 

出现编译错误的原因就是因为`os.GetEnv()只有在运行期才能得到结果,在编译期并不能确定,所以会报错。

预定义常量

Go语言预定义了常量:true、false和iota。
iota 是一个可被编译器修改的常量,它会在const关键字出现时被重置为0,然后再下一个const出现之前,每出现一次iota,其所代表的数字就会自增1。
例如:

package main

import "fmt"

func main() {

	const (
		a1 = iota
		a2 = iota
		a3 = iota

	)
	fmt.Print(a1,a2,a3)  // 0 1 2 


}

如果两个const的赋值语句的表达式是一样的,那么可以省略后一个赋值表达式。因此,上面的前两个const语句可简写为:

const ( // iota被重设为0
 c0 = iota // c0 == 0
 c1 // c1 == 1
 c2 // c2 == 2
) 

猜你喜欢

转载自blog.csdn.net/weixin_44568935/article/details/86559623
今日推荐