经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Go语言 » 查看文章
Go语言中的常量
来源:cnblogs  作者:小韩说课  时间:2018/10/29 9:55:55  对本文有异议

1 概述

常量,一经定义不可更改的量。功能角度看,当出现不需要被更改的数据时,应该使用常量进行存储,例如圆周率。从语法的角度看,使用常量可以保证数据,在整个运行期间内,不会被更改。例如当前处理器的架构类型,可以保证不被更改。

语法如下

2 定义单个常量

const 常量名 <可选的类型> = 常量值

  1. const c1 int = 1000

Go语言中,标识符(常量名)是否大小写,取决于是否需要在导出时被识别。

常量的值仅仅支持,基础类型,字符串,字符,整型,浮点,布尔。

3 类型推导

类型可以通过值推导出来,大多数情况可以省略类型,例如

  1. const c2 = 1000

除非你想使用例如,int8, byte,float32这些非默认类型时,需要指定类型,例如

  1. const c3 int16 = 1000

4 定义多个常量

可以一行定义多个常量,例如:

  1. const c4, c5 = 42, 1000

也可以使用 const()定义块,定义多个,每个常量单独一行,例如

  1. const (
  2. c6 = 42
  3. c7 = 1000
  4. )

推荐使用const()块语法,一次性定义多个。

const()块定义时,如果常量未给出定义,则延续上面的定义规则,例如:

  1. const (
  2. c7 = 42
  3. c8 // c8 = 42
  4. c9 // c9 = 42
  5. )

此时,c8, c9, 值都是42。

5 iota迭代定义常量

const配合iota关键字使用,可以定义一组由0开始+1迭代的常量
演示语法:

  1. const (
  2. gender_secret = iota
  3. gender_male // = iota
  4. gender_female // = iota
  5. )

此时,三个常量值,分别是,0, 1, 2
iota的规则是:若iota出现在const()中,那么const()定义的第一行的iota就是0,第二行就是0+1=1,不论iota是否被常量使用。演示如下:

  1. const (
  2. c1 = 42 // iota = 0,虽然未使用iota,但后边(const()中)有使用,此时iota被初始化为0,下面每行累加1
  3. c2 = iota // iota = 1,iota继续累加,使用了iota
  4. c3 = 1024 // iota = 2,同样未使用,但iota的值继续累加。c3 被定义为1024
  5. c4 // iota = 3,c4延续上面的定义c4=1024,iota继续累加
  6. c5 = iota // iota = 4,iota继续累加,使用了iota
  7. c6 = iota // iota = 5,iota继续累加,使用了iota
  8. )

此时结果为:42, 1, 1024, 1024, 4, 5

6 常量在编译时确定

编译时确定,因此不能使用变量为其赋值。可以使用,确定的字面量,字面量运算,内置函数运算,其他定义常量,这些在编译时可以确定的内容为常量赋值,演示为:

  1. const c1 = "hank"
  2. const (
  3. c2 = c1
  4. c3 = 42 + 1024
  5. c4 = len("hank")
  6. )

以上语法都可以!

7 常量的作用

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

完!

原文出自:小韩说课
微信关注:小韩说课
小韩说课

?
 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号