首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >4.Go常量

4.Go常量

作者头像
Devops海洋的渔夫
发布2022-01-17 10:40:42
发布2022-01-17 10:40:42
21200
代码可运行
举报
文章被收录于专栏:Devops专栏Devops专栏
运行总次数:0
代码可运行

4.Go常量

前言

在上一篇章,我们已经学习了Go基础数据类型,那么这一篇章我们来学习一下Go的常量。

1:常量定义使用

在讲解常量之前,我们要先简单说一下我们前面讲解的变量。我们都知道,变量是用来存储数据,并且变量里面存储的值是可以在程序运行时随时发生变化的,例如如下案例,结果输出是多少?

代码语言:javascript
代码运行次数:0
运行
复制
package main

import "fmt"

func main() {
   var number int
   number = 10
   number = 20
   fmt.Println("number=", number)
}

执行如下:

代码语言:javascript
代码运行次数:0
运行
复制
number= 20

最终的输出结果是20,因为重新给number变量赋值。

但是,常量里面的值确定好后,后面是不允许修改的。下面看一下关于常量的定义使用:

代码语言:javascript
代码运行次数:0
运行
复制
package main

import "fmt"

func main() {
   //变量:程序运行期间,可以改变的量,变量声明需要var
   //常量:程序运行期间,不可以改变的量,常量声明需要const

   //1.定义常量
   const a int = 10 // 常量不允许修改
   fmt.Println("a = ", a)

   //自动推导类型
   const b = 11.2 // 常量的自动推导不需要使用 :=
   fmt.Println("b = ", b)
}

执行如下:

代码语言:javascript
代码运行次数:0
运行
复制
a =  10
b =  11.2

常量的命名规范与变量命名规范一致。

问题:什么场景下会用到常量呢?

在程序开发中,我们用常量存储一直不会发生变化的数据,例如:π,身份证号码等。像这类的数据,在整个程序中运行中都是不允许发生改变的。

2:字面常量

所谓字面常量(literal),是指程序中硬编码的常量,如:

代码语言:javascript
代码运行次数:0
运行
复制
123
3.1415 // 浮点类型的常量
3.2+12i // 复数类型的常量
true // 布尔类型的常量
"foo" // 字符串常量

3:iota枚举

常量声明可以使用iota常量生成器初始化,它用于生成一组以相似规则初始化的常量,但是不用每行都写一遍初始化表达式。

注意:在一个const声明语句中,在第一个声明的常量所在的行,iota将会被置为0,然后在每一个有常量声明的行加一。

具体使用方式如下:

代码语言:javascript
代码运行次数:0
运行
复制
package main

import "fmt"

func main() {
 //1.iota常量自动生成器,每个一行,自动累加1
 //2.iota给常量赋值使用
 const (
  a = iota // 0
  b = iota // 1
  c = iota // 2
 )
 fmt.Printf("a=%d, b=%d, c=%d\n", a, b, c)

 // 3. iota遇到const,重置为 0
 const d = iota
 fmt.Printf("d=%d\n", d)

 // 4. 可以只写一个iota
 const (
  a1 = iota // 0
  b1
  c1
 )
 fmt.Printf("a1=%d, b1=%d, c1=%d\n", a1, b1, c1)

 //5.如果是同一行,值都一样
 const (
  i          = iota             // 0
  j1, j2, j3 = iota, iota, iota // 1
  k          = iota             // 2
 )
 fmt.Printf("i=%d, j1=%d, j2=%d, j3=%d, k=%d\n", i, j1, j2, j3, k)
}

执行如下:

代码语言:javascript
代码运行次数:0
运行
复制
a=0, b=1, c=2
d=0
a1=0, b1=1, c1=2
i=0, j1=1, j2=1, j3=1, k=2
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-07-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 海洋的渔夫 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 4.Go常量
  • 前言
  • 1:常量定义使用
  • 2:字面常量
  • 3:iota枚举
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档