Golang语言社区--Go语言基础第三节常量

大家好,我是彬哥;今天继续我们的基础课程的讲解,本篇给大家讲解的是关于Go语言常量的知识。那么在编程语言中何为常量?常量解释如下:

常量

在Go语言中,常量是指编译期间就已知且不可改变的值。

1、字面常量

-1024       // 整型常量
10.24       // 浮点型常量
10.2+4i       // 复数类型的常量
true         // 布尔型常量
"Golang"     // 字符串常量

在Go语言中,字面常量没有类型,只要这个常量在相应类型的值域范围内,就可以作为该类型的常量,比如上面的常量-1024,可以赋值给int、uint、int32、int64、float32、float64、complex64、complex128等类型的变量。

2、const常量

通过const常量,可以给字面常量指定一个友好的名字:

const Pi float64 = 3.1415
const zero = 0.0    //无类型浮点常量
cosnt (
    size int64 = 1024
    eof = -1      //无类型整型常量   
)
const u,v float32 = 0, 3
const a,b,c = 3,4,"Golang"
const mask = 1<<3

常量的赋值是一个编译期行为,所以右值不能出现任何需要运行期才能得出结果的表达式,例如:

const Golang string = "www.golang.Ltd"    // error

3、预定义常量

Go语言预定义常量有:true、false、iota,前两个为bool常量;

iota是一个可被编译器修改的常量,在每一个const关键字出现时被重置为0,然后在下一个const出现之前,每出现一次iota,其所代表的数字会自动增1,例如:

const (          
    Golang0 = iota   // Golang=0 
    Golang1 = iota   // Golang1=1 
    Golang2 = iota   // Golang2=2 
)

另外一种写法也是可以的这个和下面讲的枚举一致,例如:

const (          
    Golang0 = iota   // Golang=0 
    Golang1          // Golang1=1 
    Golang2          // Golang2=2 
)

4、枚举

在const后跟一对园括号的方式定义一组常量,例如:

const (         
    Sunday = iota   
    Monday
    Tuesday
    Wednesday
    Thursday
    Friday
    Saturday
    )

同Go语言的其他符号一样,以大写字母开头的常量在包外可见;后面讲解函数的时候,会给大家着重说明。

原创声明,本文系作者授权云+社区-专栏发表,未经许可,不得转载。

如有侵权,请联系 zhuanlan_guanli@qq.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏武培轩的专栏

排序算法-冒泡排序

算法简介 冒泡排序(Bubble Sort)是一种典型的交换排序算法,持续比较相邻元素,大的挪到后面,因此大的会逐步往后挪,故称之为冒泡。 算法描述 比较相邻的...

3277
来自专栏Jed的技术阶梯

图解冒泡排序

在上面实现的代码中,即使n个数本来就是有序的,也会进行(n-1)次排序(只比较,不交换) 优化:当数组已经有序后,就中断循环

943
来自专栏owent

模式匹配(kmp)个人模板

621
来自专栏编程

判断字符长度小技巧

很多人在判断字符长度的时候总会有一些疑问,到底这个算不算字符,各种转义字符,十进制,十六进制等等。这里教大家一些判断的小技巧: C语言——字符串长度的计算方法 ...

16210
来自专栏海天一树

字符串匹配:KMP算法

KMP算法是一种改进的字符串匹配算法,由D.E.Knuth与J.H.Morris和V.R.Pratt同时发现,因此人们称它为克努特—莫里斯—普拉特算法。KMP算...

30010
来自专栏desperate633

详解排序算法--插入排序和冒泡排序插入排序和冒泡排序分析

冒泡排序(英语:Bubble Sort,台湾另外一种译名为:泡沫排序)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把...

581
来自专栏用户画像

7.3.1 交换排序之冒泡排序

冒泡排序算法的基本思想是:假设待排序表长为n,从后往前(或从前往后)两两比较相邻元素的值。若为逆序(即A[i-1]>A[i]),则交换它们,直到序列比较完。我们...

632
来自专栏静默虚空的博客

排序五 简单选择排序

要点 简单选择排序是一种选择排序。 选择排序:每趟从待排序的记录中选出关键字最小的记录,顺序放在已排序的记录序列末尾,直到全部排序结束为止。 简单排序处理流程 ...

1799
来自专栏用户2442861的专栏

List、Set、Map、数组之间各种转换

刚学Java不久的时候,接到一个电面,然后问了一些java的知识,比如说Java的编码,Unicode等,但是最让我蛋疼的是怎么吗map转为set,那个时候对...

111
来自专栏C/C++基础

数组中的逆序对

题目: 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求出这个数组中的逆序对的总数。

611

扫描关注云+社区