go 常量 详解


常量定义和使用

常量的定义, 一般定义常量使用大写字母,常量不允许左值赋值。

package main
import "fmt"
func main() {
   const A int = 10
   fmt.Println(A)
   // 常量可以参与程序的计算
   b := A + 10
   fmt.Println(b)
   // 常量不允许左值赋值
   //A = A+10 //报错err
}

还能省略类型,注意: go语言的常量地址是不允许访问的。常量必须定义

func main() {
   const MAX = "加油"
   fmt.Println(MAX)
   fmt.Printf("%T\n",MAX)
   //打印常量的地址
   //go语言的常量地址是不允许访问的
   fmt.Printf("%p",&MAX) // 报错 err
}

下面演示报错:

func main() {
const PI float64 //报错err
PI = 3.14 //报错 err
}

func main() {
const PI float64 //err
fmt.Println(PI)
}

字面常量(了解)

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

func main() {
   // 数据区->常量区(内存)
   //这些都是没有具体常量名去指向的空间,叫字面常量
   fmt.Println("hello world")//hello world会存在常量区
   fmt.Println(3.14)//3.14同上
   a:=10
   fmt.Println(a+20) //20 也是存在常量区
}

在这里插入图片描述

iota枚举(常用)

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

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

(1)第一种格式

func main() {
   // iota 枚举
   //  iota枚举格式如果写在一行中 值相等,如果换行值在上一行基础加一
   const(
      A = iota
      B = iota
      C = iota
      D,E =iota,iota
   )
   fmt.Println(A)//0
   fmt.Println(B)//1
   fmt.Println(C)//2
   fmt.Println(D)//3
   fmt.Println(E)//3
}

(2)第二种格式

func main() {
   // 只需要对第一个进行iota赋值,后面会依次增长
   const(
      A = iota
      B
      C
      D
   )
   fmt.Println(A)//0
   fmt.Println(B)//1
   fmt.Println(C)//2
   fmt.Println(D)//3
}

(3)在定义iota枚举时可以自定义赋值

func main() {
   // 在定义iota枚举时可以自定义赋值
   const(
      A = iota
      B =10
      C =20
      D
      E
      F =iota
      G
   )
   fmt.Println(A)//0
   fmt.Println(B)//10
   fmt.Println(C)//20
   fmt.Println(D)//20
   fmt.Println(E)//20
   fmt.Println(F)//5
   fmt.Println(G)//6
}
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值