内容简介:一旦定义,其值不可更改的量,称之为常量。也是常量标识符和常量值。常量用于存储简单数据类型:数值,字符串。语法:const c1 string = “GoLang”
1 概述
一旦定义,其值不可更改的量,称之为常量。也是常量标识符和常量值。
常量用于存储简单数据类型:数值,字符串。
2 定义
语法:const c1 string = “GoLang”
语法上,支持批量定义,支持类型推导:
const (
c1 int = 42
c2 = 42
c3 = "golang"
)
fmt.Println(c1,c2,c3)
注意: 批量定义,若 后边的只写常量名,则代表和上一个一致
const (
c1 = 42
c2
c3
)
fmt.Println(c1,c2,c3) // 42 42 42
3 使用常量的意义
- 防止被无意的修改。
- 将特定的数据语义化。
例如错误处理,使用不同的数值,表示不同的错误级别,如下所示:
// 1023 表示全部的错误级别
// 4 表示提示级别。
const (
errorAll = 1023
errorNotice = 4
)
// 设置错误级别
setErrorLevel(1023)
setErrorLevel(errorAll)
4.iota 常量
4.1 概述
用于定义批量常量时,iota 表示基于行的从 0 开始逐一递增的序列数, 即 行索引
演示:
const (
c1 = iota
c2 = iota
c3 = iota
)
fmt.Println(c1,c2,c3) // 0, 1, 2
注意: 一定基于行的,即使我们没全部使用 iota 进行定义,iota 还是代表行索引。
const (
c1 = 42
c2 = 1024
c3 = iota
)
fmt.Println(c1,c2,c3) // 42, 1024, 2
4.2 一个典型的应用
结合位运算的错误配置,后续讲解位运算时进行更详细的讲解
const (
errorNotice = 1 << iota
errorWarning
errorFatal
)
fmt.Println(errorNotice, errorWarning, errorFatal) //
以上定义使用了如下的技巧:
- 常量的批量定义
- 利用了iota行索引值
- 批量定义中,常量延续前面的常量定义
- << 位运算符。
对应的展开语法为:
const (
errorNotice = 1 << 0 // 001 1
errorWarning = 1 << 1 // 010 2
errorFatal = 1 << 2 // 100 4
)
fmt.Println(errorNotice, errorWarning, errorFatal) //
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
产品经理必懂的技术那点事儿:成为全栈产品经理
唐韧 / 电子工业出版社 / 2018-1 / 59
《产品经理必懂的技术那点事儿:成为全栈产品经理》以非技术背景产品经理学习技术为主题,将技术知识以简单并且易于理解的方式讲述出来,帮助非技术背景产品经理了解技术、学习技术,旨在帮助产品经理高效地与技术人员进行沟通与合作,避免不懂技术带来的困扰。 《产品经理必懂的技术那点事儿:成为全栈产品经理》主要内容围绕产品经理需要了解的互联网基础技术知识展开,涉及客户端、服务器端、数据库及一些数据处理知识。......一起来看看 《产品经理必懂的技术那点事儿:成为全栈产品经理》 这本书的介绍吧!