为了账号安全,请及时绑定邮箱和手机立即绑定

【金秋打卡】第14天 Go开发工程师全新版 3-3

标签:
征文 活动

课程名称: Go开发工程师全新版

课程章节: 3-3 iota 的使用细节

课程讲师: bobby

课程内容:

iota:go 中关键字,是一个特殊常量, 可以认为是一个可以被编译器修改的常量,默认类型 int

iota 可以看做一个计数器,从 0 开始计数,只能在定义常量时给常量赋值使用,如下:

package main

import "fmt"

func main() {
    const {
        ERR1 = iota		//1, 从 0 开始计数
        ERR2 = iota		// 2
        ERR3 = iota		// 3
    }
    
    fmt.Println(ERR1, ERR2, ERR3)
    
    // 简写
    const {
        ERR1 = iota
        ERR2
        ERR3
    }
    
    fmt.Println(ERR1, ERR2, ERR3)
    
    // 可以给 iota 后面 + 1
    const {
        ERR1 = iota + 1  //1, 从 1 开始计数
        ERR2 			 // 2
        ERR3 			// 3
    }
    
	fmt.Println(ERR1, ERR2, ERR3)
    
    
}

注意事项

  • 如果中断了iota那么必须显式的恢复, 后续会自动递增

    package main
    
    import "fmt"
    
    func main() {
    	const (
    		ERR1 = iota + 1
    		ERR2   		  //iota +1
    		ERR25 = "ha" // 值为 ha。虽然中断了 iota,但 iota 内部仍然会增加计数器 iota +1
    		ERR3         // 值为 ha,iota +1
    		ERR31        // 值为 ha,iota +1
    		ERR32        // 值为 ha,iota +1
    		ERR33=100    // 值为 100,这里的值不影响iota,因为iota是内部计数的,iota +1
    
    		ERR4 = iota	// 值为 7,这里需要显示恢复 iota,后续才会自动递增
            ERR5
    	)
    	fmt.Println(ERR1, ERR2, ERR25, ERR3, ERR4, ERR5)
        
    }
    
  • 自增类型默认是int类型

  • iota能简化 const 类型的定义

  • 每次出现const的时候, iota初始化为0

    package main
    
    import "fmt"
    
    func main() {
    	const (
    		ERR1 = iota + 1	// 1
    		ERR2	// 2
    		ERR3	// 3
            ERR4	// 4
    	)
        
    	const (
    		NEWIOTA1 = iota  // 0, iota初始化为0
    	)
    
    	fmt.Println(ERR1, ERR2, ERR3, ERR4)		// 1 2 3 4
    	fmt.Println(NEWIOTA1)  // 0
        
    }
    

课程收获:
了解 iota 可以让常量从0开始自增长
图片描述

点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
Web前端工程师
手记
粉丝
10
获赞与收藏
5

关注作者,订阅最新文章

阅读免费教程

感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消