美文网首页
go学习一·常量constant, iota

go学习一·常量constant, iota

作者: 那钱有着落吗 | 来源:发表于2021-03-06 10:29 被阅读0次

本系列记录的是本人第二次学习go语言的经验,所以如果对于go一点都不了解的可以先去认真的过一遍go的基础,基础教程大家可以去看 https://github.com/rubyhan1314/Golang-100-Days,这个系列的基础是我在这个帖子的基础上总结或者摘录过来的,或者也可以体系的去学习一下go的基础,这里有一本入门指南:https://github.com/unknwon/the-way-to-go_ZH_CN/blob/master/eBook/directory.md

1.常量

常量是一个简单值的标识符,在程序运行时,不会被修改的量。

显式类型定义: const b string = "abc"
隐式类型定义: const b = "abc"

常量可以作为枚举,常量组
const (
    Unknown = 0
    Female = 1
    Male = 2
)
常量组中如不指定类型和初始化值,则与上一行非空常量右值相同

package main

import (
    "fmt"
)

func main() {
    const (
        x uint16 = 16
        y
        s = "abc"
        z
    )
    fmt.Printf("%T,%v\n", y, y)
    fmt.Printf("%T,%v\n", z, z)
}

2. iota

iota,特殊常量,可以认为是一个可以被编译器修改的常量

iota 可以被用作枚举值:

const (
    a = iota
    b = iota
    c = iota
)
第一个 iota 等于 0,每当 iota 在新的一行被使用时,它的值都会自动加 1;所以 a=0, b=1, c=2 可以简写为如下形式:

const (
    a = iota
    b
    c
)
iota 用法

package main

import "fmt"

func main() {
    const (
            a = iota   //0
            b          //1
            c          //2
            d = "ha"   //独立值,iota += 1
            e          //"ha"   iota += 1
            f = 100    //iota +=1
            g          //100  iota +=1
            h = iota   //7,恢复计数
            i          //8
    )
    fmt.Println(a,b,c,d,e,f,g,h,i)
}
运行结果:

0 1 2 ha ha 100 100 7 8
如果中断iota自增,则必须显式恢复。且后续自增值按行序递增

自增默认是int类型,可以自行进行显示指定类型

数字常量不会分配存储空间,无须像变量那样通过内存寻址来取值,因此无法获取地址

相关文章

  • go学习一·常量constant, iota

    本系列记录的是本人第二次学习go语言的经验,所以如果对于go一点都不了解的可以先去认真的过一遍go的基础,基础教程...

  • 第01天(基本类型、流程控制)_02

    07_常量的使用.go 08_多个变量或常量定义.go 09_iota枚举.go 10_bool类型.go 11_...

  • golang学习笔记--iota

    go中的iota 1.iota只能在常量的表达式中使用、2.每次const出现时都会让iota初始化为03.用作枚...

  • Golang 常量使用iota

    基本概念 iota是Go语言的常量计数器,只能在常量的表达式中使用。iota默认值为0,在且仅在const关键字出...

  • 《Go语言四十二章经》第四章 常量

    《Go语言四十二章经》第四章 常量 作者:李骁 4.1 常量以及iota 常量使用关键字 const 定义,用于存...

  • Go枚举(一)

    go没有明确意义上的enum定义,不过可以借助iota标识符实现一组自增常量值来实现枚举类型。1.iota自增 输...

  • Go语言--iota枚举

    介绍 iota 常量自动生成器,每个一行,自动累加1 iota给常量赋值使用3.iota遇到const,重置为04...

  • solidity-3.常量

    常量(constant state variables) 状态变量可以被定义为constant常量,类似于java...

  • 常量池表中的字面量和符号引用

    constant_pool [](常量池) constant_pool 是一种表结构,以1 ~ constant_...

  • GO学习 iota

    第4天iota关键字 package main import "fmt" func main() { /* i...

网友评论

      本文标题:go学习一·常量constant, iota

      本文链接:https://www.haomeiwen.com/subject/qfbhqltx.html