go学习一·常量constant, iota


本文摘自网络,作者,侵删。

本系列记录的是本人第二次学习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

相关阅读 >>

Golang中使用json时区分空字段和未设置字段的方法

利用Go实现快看漫画网页版自动点击“下一话”,中间无需手动操作,但有一点疑惑,望大佬们解答。

zookeeper 的 Golang 客户端

Go语言学习(四):数组和切片

Gocn酷Go推荐】ip2location 解析 ip 地址库

Golang recover后怎么返回

聊聊dubbo-Go-proxy的plugins

Golang基础-单元测试与mock

Golang 用olivere库操作elastic search

skywalking Golang客户端源码解析

更多相关阅读请进入《Go》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...