Go语言常量
常量是一个简单值的标识符,在程序运行时,不会被修改的量。
常量中的数据类型只能是布尔型、数字型(整数型、浮点型和复数)和字符串型。
常量的定义格式:
//const 常量名 类型 值
const identifier [type] = value
可以省略类型说明符[type],因为编译器可以根据变量值来推断其类型。
- 显式类型定义: const b string = "itbsl"
- 隐式类型定义: const b = "itbsl"
无论是变量还是常量,不同类型的都不能显式的声明在一行:
var a int, b float32 = 1, 2.4 //编译器不通过
const c int, d float32 = 3, 4.4 //编译器不通过
const c, d float32 = 3, 4 //编译通过(此时c和d都是float32类型)
const c, d = 3, 4.4 //编译通过(此时c是int类型,d是float64类型)
说明:我们可以通过reflect.Typeof(变量名)打印变量或常量的类型
常量可以用len()、cap()、unsafe.Sizeof()常量计算表达式的值。常量表达式中,函数必须是内置函数,否则编译不通过,因为在编译期间自定义函数均属于未知,因此无法用于常量的赋值:
package main
import "unsafe"
const (
a = "cstxco"
b = len(a)
c = unsafe.Sizeof(a)
)
func main() {
println(a, b, c)
}

iota
iota,特殊常量,可以认为是一个可以被编译器修改的常量。
在每一个const关键字出现时,被重置为0,然后在下一个const出现之前,每出现一次iota,其所代表的数字会自动增加1。iota可以被用作枚举值:
const(
a = iota
b = iota
c = iota
)
第一iota等于0,每当iota在新的一行被使用时,它的值都会自动加1;所以a=0,b=1,c=2,可以简写为如下形式:
const(
a = iota
b
c
)
用法示例:
package main
import "fmt"
func main() {
const(
a = iota //0
b //1
c //2
d = "itbsl" //独立值,iota += 1
e //itbsl iota += 1
f = 200 //200 iota += 1
g //200 iota += 1
h = iota //7,恢复计数
i //8
)
fmt.Println(a, b, c, d, e, f, g, h, i)
}
输出结果为
0 1 2 itbsl itbsl 200 200 7 8
我们可以把iota理解为const里的行数
const(
a = iota
b = iota
c, d = iota, iota
)
fmt.Println(a, b, c, d)
输出结果为
0 1 2 2
当我们定义常量时,如果多个常量的值相同,后面的常量可以直接不赋值,默认等同于上面已赋值的常量的值
package main
import "fmt"
//当我们定义常量时,如果多个常量的值相同,后面的常量可以直接不赋值,默认等同于上面已赋值的常量的值
const (
a = "itbsl"
c
d
)
func main() {
fmt.Println(a, c, d)
}
输出结果为
itbsl itbsl itbsl
Go语言常量的更多相关文章
- 不可或缺 Windows Native (2) - C 语言: 常量,变量,基本数据类型
[源码下载] 不可或缺 Windows Native (2) - C 语言: 常量,变量,基本数据类型 作者:webabcd 介绍不可或缺 Windows Native 之 C 语言 常量 变量 基本 ...
- GO语言学习(八)Go 语言常量
Go 语言常量 常量是一个简单值的标识符,在程序运行时,不会被修改的量. 常量中的数据类型只可以是布尔型.数字型(整数型.浮点型和复数)和字符串型. 常量的定义格式: const identifier ...
- 不同标准下的C语言常量范围的默认类型的检测 (测试样例为C90与C99)
不同标准下的C语言常量范围的默认类型的检测 一.C90与C99标准下的不同常量范围的默认类型 C90标准下对不同常量范围默认类型的检测实现及运行结果: C99标准下对不同范围默认类型的检测实现 ...
- JavaScript语言常量和变量
我们在以往介绍使用JavaScript编写一个HelloJS的小程序,其中我们就用到变量.常量和变量是构成表达式的重要组成部分.常量在声明和初始化变量时,在标识符的前面加上关键字const,就可以把该 ...
- GO语言常量和变量
标识符与关键字 标识符 人为定义有特殊意义的词,Go语言中标识符由字母数字和_(下划线)组成,并且只能以字母和_开头. 关键字 关键字是指编程语言中预先定义好的具有特殊含义的标识符. GO语言中有25 ...
- 07 C语言常量
常量的定义 常量是指固定的值,固定值在程序执行期间不会改变.这些固定值,又叫做字面量. 常量可以是任意的基本数据类型,比如整数常量.浮点常量.字符常量,或字符串字面值,也有枚举常量. 不要搞得太复杂, ...
- 【C语言】C语言常量和变量
目录: [常量] · 定义 · 分类 · 特殊字符型常量 [变量] · 定义 · 定义变量 · 变量的使用 · 变量使用注意 · 变量常见问题 1.常量 · 定义 常量 ...
- Swift语言—常量、变量、类型赋值
常量:常量在作用域内不能被赋值且不会发生改变,只读不写,每个常量都必须有唯一的名字和内存空间:关键字:let 变量:变量在作用区域内可以它的值可以被改变,可读可写可覆盖,每个常量都必须有唯一的名字 ...
- C语言常量与指针
C语言功能强大而丰富,还表现在const与指针的结合使用上,对不同的问题,它提供不同的保护,特别有用的是指向常量的指针 本文地址:http://www.cnblogs.com/archimedes/p ...
- c 语言常量
1,整数常量 整数常量可以是十进制.八进制或十六进制的常量.前缀指定基数:0x 或 0X 表示十六进制,0 表示八进制,不带前缀则默认表示十进制. 整数常量也可以带一个后缀,后缀是 U 和 L 的组合 ...
随机推荐
- css:pointer-events: none
css3新属性pointer-events: none: pointer-events: none 顾名思义,就是鼠标事件拜拜的意思.元素应用了该 CSS 属性,链接啊,点击啊什么的都变成了 “浮云牌 ...
- 利用iptables防火墙允许1521端口被连接
今天在虚拟机上装了ora11g , 出现2个问题 1.i386的几个RPM包缺少导致安装验证不通过 2.安装完成后,本地电脑连不上虚拟机oracle , 但是能ping通 问题2: 简单的方法就是关掉 ...
- python—切片
切片就是list取值的一种方式 l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] print(l[1:5]) #取值方式顾头不顾尾 print(l[:5]) #冒号 前面 没写代 ...
- js判断是手机端还是pc端访问
if(/Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)) { window.location.href = " ...
- tiny4412 --Uboot移植(3) 时钟
开发环境:win10 64位 + VMware12 + Ubuntu14.04 32位 工具链:linaro提供的gcc-linaro-6.1.1-2016.08-x86_64_arm-linux-g ...
- 小豆包的学习之旅:占用概率栅格地图和cost-map
接下来将制图和定位问题分别进行介绍.这两个问题可以视为SLAM过程中两个相互联系的子问题,但是也可以视为两个单独的问题.虽然说SLAM问题是鸡和蛋的问题,但是在实际处理过程中总是有先后的.为了简化问题 ...
- java 远程debug
在启动jar包添加如下参数16091是端口 java -Xdebug -Xrunjdwp:transport=dt_socket,address=16091,server=y,suspend=n -j ...
- idea本地运行JavaWeb项目
1.需安装的软件有: JDK,当前版本jdk1.8 maven,当前版本3.2.1 mysql,mysql5.7 tomcat,tomcat9 git客户端,TortoiseGit-2.1.0.0-6 ...
- sendmail发送邮件
#echo 'hello!' | mail -s "hello test" 119733@qq.com
- Call to undefined function Workerman\posix_getpid()
安装扩展 yum install php-posix