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 的组合 ...
随机推荐
- Java 就业班 Web框架
- tp5框架中jquery+ajax分页
jaxa分页,点击按钮直接替换数据, //php代码$page=Request::instance()->param("page"); $page = empty($page ...
- 25.Hibernate-配置文件.md
目录 1.主配置文件 1.1定义 1.1.1分类 1.1.2分类 1.1.3不使用配置文件生成表 1.2教程 2. 映射配置文件 1.主配置文件 1.1定义 1.1.1分类 在hibernate的配置 ...
- tensorflow-serving-gpu 本地编译并使用
因为要部署,模型比较大,所以通常官网的pip install 和bazel 教程编译的都是cpu版本的代码, 所以为了感受下gpu就尝试自己编译了,首先,下载源码: git clone --recur ...
- 使用 Ansible 统计服务器资源利用率
使用 Ansible 统计服务器资源利用率: 3 条 shell 脚本实现统计: CPU 利用率统计: top -bn1 | grep load | awk '{printf "CPU Lo ...
- mybatis中查询使用#{}和${}的区别
${}中的变量什么值,就会简单的替代变量,不会做处理 比如delete * from tb_label where name=${labelname} 如果labelname的值是 something ...
- VS打开SSAS或SSIS报错的解决办法
---------------------------Microsoft Visual Studio---------------------------无法加载类型为“Microsoft.Analy ...
- jsonarray根据id排序
List<JSONObject> jsonValue=new ArrayList<JSONObject>(); JSONArray sortJsonarr=new JSONAr ...
- [leetcode]2. Add Two Numbers两数相加
You are given two non-empty linked lists representing two non-negative integers. The digits are stor ...
- [leetcode]45. Jump Game II青蛙跳(跳到终点最小步数)
Given an array of non-negative integers, you are initially positioned at the first index of the arra ...