75142913在线留言
GO语言学习笔记3:常量的N种定义与使用_Go语言_网络人

GO语言学习笔记3:常量的N种定义与使用

Kwok 发表于:2020-09-29 14:09:04 点击:7 评论: 0

程序语言中常量被定义后就不能再被其它代码所修改了,就像宇宙定义了月亮绕地球,地球绕太阳,不能改为月亮去绕太阳一样的道理,常量通常用于定义某些不可让外部代码修改的值,常见的有目录路径、程序版本号、π派、宇宙最低温度-273.15等。

关于命名:开发项目中为了区别变量与常量,我们通常将常量定义为全部大写。变量如果没有使用编译的时候会报错,但是常量不会,常量如果定义时没有给初始值则会和上一组一样(看本文最后的代码演示)

定义格式为:

const CONSTNAME [type] = value

例如:

const SITENAME string = "网络人" //显式类型定义
//也可以使用推导方式,同变量http://www.neter8.com/go/70.html,但有关键字const所以不能使用:=方式哦~
const SITENAME = "网络人"//隐式类型定义

和变量一样,可以同时定义多个常量。

const SITENAME , SITEURL= "网络人", "http://www.neter8.com/"

还是和变量一样,const定义块

const (
    SITENAME = "网络人"
    AGE = 10
    SITEURL = "http://www.neter8.com/"
    URLSITE =len(SITEURL)//常量可以用len(), cap(), unsafe.Sizeof()函数计算表达式的值。常量表达式中,函数必须是内置函数,否则编译不过
)

特殊常量iota

iota是一个可以被编译器修改的常量,在 const关键字出现时将被重置为 0(const 内部的第一行之前),const 中每新增一行常量声明将使 iota 计数一次(iota 可理解为 const 语句块中的行索引)。

const (
    A = iota
    B = iota
    C = iota
)
func main() {	
	fmt.Println(A,B,C) //输出为0 1 2
}

看看iota特殊的地方:

const (
	A = iota
	B
	C
	D = "string"
	S
	E = iota+10
	F
	G
)

func main() {
	fmt.Println(A, B, C, D, S, E, F,G) //输出为0 1 2 string string 15 16 17
}

常量将特殊的值,语义化。使用时,可以知道其具体含义。常量有得数据的集中管理,更改常量定义,即可完成全部的修改。并保证不被程序的其他代码所更改。

常量只可以使用布尔值,数字型(整数、浮点、复数)和字符串类型。

除非注明,网络人的文章均为原创,转载请以链接形式标明本文地址:http://www.neter8.com/go/72.html
标签:GO常量
0
感谢打赏!

《GO语言学习笔记3:常量的N种定义与使用》的网友评论(0)

本站推荐阅读

热门点击文章