Go基础之常量

本文介绍了Go语言中的常量声明及使用,强调了常量在声明时需要赋值,并通过示例展示了类型推断。同时,文章探讨了Go中的枚举实现,包括普通枚举类型和自增值枚举类型,以及如何利用'iota'进行枚举值的自增。还提供了一个'iota'应用的例子,展示其在位运算中的用法。
摘要由CSDN通过智能技术生成

常量的声明及使用:

声明一个常量一定要给它赋值 

  • const fliename = "abg.txt"
  • const s string = "hello"
  • const(

         a = 3

        b = bool

       )

const 数值在声明时不做类型确定时,可作为各种数值使用,相当于在编译是直接把数值换过去

const a, b  = 3, 4

c := math.Sqrt(a*a+b*b)

此时,a,b 不需做强制转换

const a, b int  = 3, 4

c := math.Sqrt(a*a+b*b)

常量a, b做了类型说明, 此时,编译报错"cannot use a * a + b * b (type int) as type float64 in argument to math.Sqrt"

特殊的常量-枚举

go语言中没有专门的枚举类型,go中的枚举是以一个const块来表示的,分为普通枚举类型和自增值枚举类型

普通枚举类型: 

const(

     go = 0

     java = 1

     c++ = 2

)

fmt.Println(go, java, c++)     输出为:0, 1 ,2

 可以用"iota"做自增来简化枚举

自增值枚举类型: 

const(

    go = iota

    java

    c++

)

fmt.Println(go, java, c++)      输出为:0, 1, 2

const(

    go = iota

    _         //占位符

    c++

    java

)

fmt.Println(go, java, c++)      输出为:0, 3, 2

"iota"从0开始自增1,可以做一些复杂的事,比如一些运算

const(
    b = 1 <<(10*iota)  //把1左移10*0位,即1
    kb         //把1左移10*1位,即10000000000 = 2^{10} = 1024
    mb                            //把1左移10*2位,即 2^{20} = 1048576
    gb                             //.......
    tb
    pb
)

fmt.Println(b, kb, mb, gb, tb, pb)  

输出为:1 1024 1048576 1073741824 1099511627776 1125899906842624 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值