Go-004 常量

栏目: IT技术 · 发布时间: 5年前

内容简介:一旦定义,其值不可更改的量,称之为常量。也是常量标识符和常量值。常量用于存储简单数据类型:数值,字符串。语法: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) //

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

人件

人件

Tom DeMarco、Timothy Lister / UML China / 清华大学出版社 / 2003-6 / 35.00元

《人件(第2版)》专门讨论了软件开发和维护的团队管理问题,并向人们的传统认识提出了挑战。作者汤姆·迪马可,蒂姆·李斯特在书中推崇人本管理思想,指出知识型企业的核心是人,而不是技术。《人件(第2版)》于1987年首次出版后,曾在西方引起了轰动,被誉为“对美国软件业影响最大的一本书”。《人件(第2版)》还对大中型组织中的软件开发团队如何运作进行了深入探讨。《人件》已成为软件图书中的经典之作。它和《人月......一起来看看 《人件》 这本书的介绍吧!

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

html转js在线工具
html转js在线工具

html转js在线工具