专栏首页Golang语言社区Golang语言社区--Go语言基础第三节常量
原创

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 条评论
登录 后参与评论

相关文章

  • 【Go 语言社区】Golang 语言再谈常量

    常量是指该程序可能无法在其执行期间改变的固定值。这些固定值也被称为文字。 常量可以是任何像一个整型常量,一个浮点常量,字符常量或字符串文字的基本数据类型。还有枚...

    李海彬
  • Go语言内存分配器的实现

    前面断断续续的写了3篇关于Go语言内存分配器的文章,分别是Go语言内存分配器设计、Go语言内存分配器-FixAlloc、Go语言内存分配器-MSpan,这3篇主...

    李海彬
  • golang模板template自定义函数用法示例

    golang的模板十分强大,其中的unix管道风格函数调用很是喜欢. 模板中有很多内置可以参看pkg文档, 另外还可以实现自定义函数. 例子如下: packag...

    李海彬
  • activiti学习笔记(五) 流程部署

    activiti流程部署 activit部署方法api     activiti共有六种部署方式,最终实现都是DeploymentEntityImpl的addR...

    cfs
  • Go语言中的常量和变量

    在批量声明常量的时候,如果其中有一个常量没有赋值,其内容和上一个常量一样,如下c2,c3的内容也为200:

    极客运维圈
  • ubuntu下adsl拨号上网

    forrestlin
  • 群晖6.17/6.21二合一引导启动系统盘

    闲鱼50块淘了个d2550的迷你主机准备来搞个群晖,群晖这东西用久了真的很好用,对于家里设备比较多用户真的非常实用,爱游家里4台电脑,手机6个,电视2台互传文件...

    爱游博客
  • 【Caffe篇】--Caffe solver层从初始到应用

    LhWorld哥陪你聊算法
  • Bark服务利用机器学习保护未成年人上网安全

    让孩子安全上网并非易事。根据Netmums的统计,多达25%的未成年人在Twitter和Facebook等社交网站假报年龄,而且有12%的未成年人向其他用户发送...

    AiTechYun
  • 1091 N-自守数 (15 分)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    韩旭051

扫码关注云+社区

领取腾讯云代金券