02、常量 和 iota

1、常量申明

--相对于变量,常量是恒定不变的值,多用于定义程序运行期间不会改变的那些值。 常量的声明和变量声明非常类似,只是把var换成了const,常量在定义的时候必须赋值。

--逐个赋值
    const pi = 3.1415
    const e = 2.7182

--批量声明:
    const (
        pi = 3.1415
        e = 2.7182
    )

--const同时声明多个常量时,如果省略了值则表示和上面一行的值相同。 例如:
    const (
        n1 = 100
        n2
        n3
    )
    n1 n2 n3 都是 100

--代码示例:
    package main

    import "fmt"

    const s3 = "li"  // 常量可以在函数体外声明 并 赋值,变量只能声明

    func main() {
	    const (
		    s1 = "liming"
		    s2 = "yuel"  // 常量可以声明了,但是不使用
	    )

        const (
		    n1 = 100
		    n2
		    n3
	    )

	    fmt.Println()  
	    fmt.Println(s3)

        fmt.Println(n1)
	    fmt.Println(n2)
	    fmt.Println(n3)
    }

2、iota 常量计数器

--iota是go语言的常量计数器,只能在常量的表达式中使用

--iota在const关键字出现时将被重置为0。const中每新增一行常量声明将使iota计数一次(iota可理解为const语句块中的行索引)。 使用iota能简化定义,在定义枚举时很有用。

--示例1:
    const (
		a1 = iota
		a2
		a3
	)
  
	fmt.Println(a1)  // 0
	fmt.Println(a2)  // 1
	fmt.Println(a3)  // 2

--示例:
    const (
		b1 = iota
		b2 = iota
		_  = iota
		b3 = iota
	)

	fmt.Println(b1)  // 0
	fmt.Println(b2)  // 1
	fmt.Println(b3)  // 3
--示例:
	const (
		c1 = iota
		c2 = 100
		_  = iota
		c3
		c4 = iota
	)

	fmt.Println(c1)  // 0
	fmt.Println(c2)  // 100
	fmt.Println(c3)  // 3
	fmt.Println(c4)  // 4
--示例:
    --const关键字出现时将被重置为0
    --const中每新增一行常量声明将使iota计数一次
    const (
		d1, d2 = iota + 1, iota + 2  // d1:1  d2:2
		
		d3, d4 = iota + 1, iota + 2  // d2:2  d2:3
	)

	fmt.Println(d1)  // 1
	fmt.Println(d2)  // 2
	fmt.Println(d3)  // 2
	fmt.Println(d4)  // 3
--示例: 定义数量级
    const (
		_  = iota  // 舍弃了
		KB = 1 << (10 * iota)  // 左移10位 == 1024
		MB = 1 << (10 * iota)  // 左移20位 
		GB = 1 << (10 * iota)  // 左移30位
		TB = 1 << (10 * iota)  // 左移40位
		PB = 1 << (10 * iota)  // 左移50位
	)
--示例:
    const (
		a, b = iota + 1, iota + 2 //1,2
		c, d                      //2,3
		e, f                      //3,4
	)

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值