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 ...