go-常量与运算符
常量的定义
- 常量的值在编译时就已经确定
- 常量的定义格式与变量基本相同
- 等号右侧必须是常量或者常量表达式
- 常量表达式中的函数必须是内置函数

常量的初始化规则与枚举
- 在定义常量组时,如果不提供初始值,则表示将使用上行的表达式
- 使用相同的表达式不代表具有相同的值
- iota是常量的计数器,从0开始,组中每定义1个常量自动递增1
- 通过初始化规则与iota可以达到枚举的效果
- 每遇到一个const关键字,iota就会重置为0
注意:常量的初始化必须是常量

package main
import(
"fmt"
)
//单个常量
const a int = 55
const b string = "你好"
//常量组
const(
e = "世界"
f = a
g
)
const q,p,w = 1,2,3
const (
u,v,t = 1,2,3
)
const (
m = "A "
n
l = iota
k
)
func main() {
fmt.Println(a,e,g) //55 世界 世界
fmt.Println(u,v,t) // 1 2 3
fmt.Println(q,p,w) // 1 2 3
fmt.Println(m,n,l,k) //65 65 2 3
}
常量的编码规范:常量的命名最好以全大写字母来表示,前加’_'或小写字母c表示该常量在该包内部使用,不被外部所调用
运算符
- Go中的运算符均是从左至右结合
- 优先级(从高到低)
- ^ ! (一元运算符)
- * / % <<(左移) >>(右移) &(和) &^
- + - | ^ (二元运算符)
- == != < <= >= >
- <- (专门用于并发channel)
- &&(and)
- ||
#二进制位运算 /* 6 : 0110 11 : 1011 ----------- & 0010 两个都是1则为1,否则为0 | 1110 如果有一个是1则为1 ^ 1101 两个只有其中一个是1则为1,否则为0 &^ 0100 如果第二个数为1,则第一个数改为0,否则无变化为第一位数 */
利用常量组实现存储单位的转换
package main
import "fmt"
const (
B float64=1<<(iota*10)
KB
MB
GB
TB
)
func main() {
fmt.Println(B)
fmt.Println(KB)
fmt.Println(MB)
fmt.Println(GB)
fmt.Println(TB)
}

浙公网安备 33010602011771号