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

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

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏LanceToBigData

JavaSE(一)之类与对象

终于到了要学习面向对象程序设计了,其中可能很多东西以前都知道怎么去用,但是却不知道怎么来的,或者怎么样写会出错,所以今天总结起来。 一、OOP概述   Java...

2085
来自专栏微信公众号:Java团长

Java抽象类与oop三大特征

在了解抽象类之前,先来了解一下抽象方法。抽象方法是一种特殊的方法:它 只有声明,而没有具体的实现 。抽象方法的声明格式为:

1124
来自专栏从零开始学 Web 前端

从零开始学 Web 之 JavaScript(二)变量

基础数据类型: String,Number,Boolean,unsigned、null

853
来自专栏blackheart的专栏

[C#2] 1-泛型

1. 泛型概述 泛型是一种类型的多态;比如当我们写一个栈或者队列的时候,需要指定其数据类型,int一份代码,string一份代码,object的一份代码, 这些...

22810
来自专栏开发与安全

从零开始学C++之异常(二):程序错误、异常(语法、抛出、捕获、传播)、栈展开

一、程序错误 编译错误,即语法错误。程序就无法被生成运行代码。 运行时错误 不可预料的逻辑错误 可以预料的运行异常 例如: 动态分配空间时...

2010
来自专栏斑斓

Scala中的偏函数

艺术地说,Scala中的Partial Function就是一个“残缺”的函数,就像一个严重偏科的学生,只对某些科目感兴趣,而对没有兴趣的内容弃若蔽履。Part...

3334
来自专栏小勇DW3

Java之static作用的全方位总结

 引用一位网友的话,说的非常好,如果别人问你static的作用;如果你说静态修饰 类的属性 和 类的方法 别人认为你是合格的;如果是说 可以构成 静态代码块,...

1222
来自专栏木子昭的博客

Python中 传递值 与 传递引用 的区别

对于不可变类型传递值(不会影响原数据) ? 不可变类型 对于可变类型传递引用(会影响原数据) ? 不可变类型传递引用 pyth...

3829
来自专栏JMCui

浅析多线程的对象锁和Class锁

一、前言 本来想在另外一篇文章说的,发现可能篇幅有点大,所以还是另开一篇博文来说好了。知识参考《Java多线程编程核心技术》,评价下这本书吧——大量的代码,简单...

3696
来自专栏WindCoder

Java基础小结(二)

继承可以使用 extends 和 implements 这两个关键字来实现继承, 而且所有的类都是继承于 java.lang.Object,当一个类没有继承的两...

901

扫码关注云+社区