golang基础--常量与运算符

常量与运算符

常量的定义
  • 常量的值在编译时已经确定

  • 常量的定义格式与变量的基本相同

  • 等号的右侧必须是常量或者常量表达式

  • 规范: 常量定义时建议都使用大写,单词之间使用大写

    • 便于包的外部调用
    • 如果只限于包内部使用在常量开头使用_或者使用小写c

      //常量赋值
      package main
      import "fmt"
      const a int = 1                                      //常规写法:声明类型
      const b = 'A'                                        //自动判断类型
      const(
          c = a
          d = a + 1
          e = a + 2
      )
      const ( //常量组定义方法2
          a2, b2, c2 = 1, "2", "c"
         )
      const a3, b3, c3 = 1, "2", "c"            //简单写法,多个定义
      const (                                             //常量组特性:如果常量没有赋值,下面默认使用了之前的常量表达式
          a4 = 1
          b4
          c4
          d4
      )
      func main() {
          fmt.Println(a4)
          fmt.Println(b4)
          fmt.Println(c4)
          fmt.Println(d4)
      }
      /*output
      1
      1
      1
      1
      */
常量与全局变量的区别
  • 常量表达式里面必须使用常量表达式的变量和内置函数,不能使用运行时才能获得的变量和值

    package main
    import "fmt"
    var sss = 123
    const (
        //a = len(sss)                             //这种写法是错误的,无法使用全局变量
        b = "123"
        c = len(b)
        d,f = 1,"abc"
        j                                              //这种方式也是错误的,初始化的个数必须相同
    )
    func main() {
        //fmt.Println(a)
        fmt.Println(b)
        fmt.Println(c)
        fmt.Println(d)
    }
    /*output
        123
          3
          3
    */
    
枚举结合常量组使用,用于计数
  • 常量组中每定义一个常量,计数就递增1,第一个常量默认为0

  • 当组中常量出现关键字iota时,说明此时需要使用该组常量的计数

    //常量&枚举(计数)
    package main
    import "fmt"
    const (
        B1 = "ssss"
        A  = "a"
        B  = iota
        E
        F  = iota
    )
    func main() {
        fmt.Println(B1)
        fmt.Println(A)
        fmt.Println(B)
        fmt.Println(E)
        fmt.Println(F)
    }
    /*output
    ssss           //iota =0
    a                 //iota=1
    2                 //iota =2
    3
    4
    */
运算符
  • go中运算符均时从左到右
小练习:尝试结合常量的iota<<运算符实现计算机储存单位的枚举***
  • expt:
```go
 /*实现计算机储存单位常量的枚举
 */
 package main
 import "fmt"
 const (
    B  float64 = 1 << (iota * 10) //此时iota =0 ,KB
    KB                            // 此时计数为1,MB
    MB                            // iota为2
    GB 
    TB 
    PB 
 )
 func main() {
    fmt.Println(B)
    fmt.Println(KB)
    fmt.Println(MB)
    fmt.Println(TB)
    fmt.Println(PB)
 }
 /*output
 1
 1024
 1.048576e+06
 1.099511627776e+12
 1.125899906842624e+15
 */
```

转载于:https://www.cnblogs.com/failymao/p/9227398.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值