go之常量

概念

  恒定不变的量,定义赋初值以后,就不能改

  在python中,常量约定俗成,全大写表示常量,go中关键字修饰,真正的不能修改

  常量的定义,一般定义外部,所有函数都可以用,使用const关键字修饰,定义时必须赋初值。变量的作用域范围---》在函数内部,外部

常量的基本定义和使用

package main

import "fmt"

// 常量的定义,一般定义外部,所有函数都可以用,使用const关键字修饰,定义时必须赋初值
// 变量的作用域范围---》在函数内部,外部
// const 常量名 常量类型 = 常量值
const name string ="彭于晏"
// const 常量名  = 常量值
const age  =19

func main() {
   // 1 常量的基本定义和使用
   //fmt.Println(name)
   //fmt.Println(age)

  常量布尔

//const b bool = true
////b=false  不能修改
//fmt.Println(b)

  同时定义多个常量

// 同时定义多个常量
//const (
// name string="彭于晏"
// age =19
//)

iota

  使用方式一

//const (
// a=iota   // iota 写在第一行,表示0
// b=iota   // iota 写在第二行,表示1
// c=iota    // iota 写在第三行,表示2
//)
//fmt.Println(a,b,c)

  使用方式二

1.
// 定义常量,如果没有赋初值,初值是上一行常量的值
// 一旦使用了itoa,就打破了上面的规则,按照iota的增长规则,每一行加一
//const (
// a=10   // a是10,是我定义的
// b     //b没有赋值,会使用上一个常量的值
// c=iota // 第三行,就是2
//
// d=iota // 第四行,就是3
//)

2.
//const (
// a=10   // a是10,是我定义的
// b     //b没有赋值,会使用上一个常量的值
// c=iota // 第三行,就是2
// d       // 第四行,就是3  中间一旦使用了iota,就打破了参照上面常量值的规范,变成了相当于每一个都写了iota
// //e=iota // 第5行,就是4
// e // 第5行,就是4
// f=iota // 第6行,就是5
//)
//fmt.Println(a,b,c,d,e,f)

  定义数量级

type ByteSize float64

const (
    _           = iota                   // ignore first value by assigning to blank identifier
    KB ByteSize = 1 << (10 * iota) // 1 << (10*1)
    MB                                   // 1 << (10*2)
    GB                                   // 1 << (10*3)
    TB                                   // 1 << (10*4)
    PB                                   // 1 << (10*5)
    EB                                   // 1 << (10*6)
    ZB                                   // 1 << (10*7)
    YB                                   // 1 << (10*8)
)

  

 

posted @ 2022-08-01 17:49  那就凑个整吧  阅读(32)  评论(0编辑  收藏  举报