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) )