上一次学习讲到了golang中的变量和类型,有个比较有意思的东西,看如下代码:
func main(){
var a int = 65
b := string(a)
fmt.Println(b)
}
这个结果输出的是什么呢?
输出的结果是:"A",大家都知道ASCII中65对应的是字符"A",在计算机中,其实所有的字符本质都是数字,string()表示将数据转换成文本格式,这样就不难理解为什么65会变成"A"了.如果需要完成字符和数字之间的转换,可以使用strconv库中的strconv.Itoa()和strconv.Atoi()来转换.
今天学习一下常量和运算符
常量的定义:
- 常量的值在编译时就已经确定
- 常量的编译格式与变量基本相同
- 等号右侧必须是常量或常量表达式
- 常量表达式中的函数必须是内置函数
//定义单个常量
const a int = 1
const b = 'A'const(text = "123"length = len(text)num = b * 20)
//同时定义多个常量
const i, j, k = 1, "2", '3'
const (text2, length2, num2 = "456", len(text2), k * 10))
常量中有个计数方法iota
const(
a = 'A'
b
c = iota
d
)
const(
e = iota
f = 0
g = iota
h
)
fmt.Println(a) //65
fmt.Println(b) //65
fmt.Println(c) //2
fmt.Println(d) //3
fmt.Println(e) //0
fmt.Println(f) //0
fmt.Println(g) //2
fmt.Println(h) //3
从上面输出结果来看,iota每有一个常量,便会自增一次,第几个常量取出iota,他就显示为当前取出数-1,同样的,在不同的const中,iota会重置为0
运算符
重点学习 & | ^ &^ 四个符号
// 1: 0001
//11: 1011
//----------
// &: 0001 ->1 //两数同为1 则为1 否则置为0
// |: 1011 ->11 //两数有一个1 就置为1
// ^: 1010 ->10 //两数只有一个1,就置为1
//&^: 0000 ->0 //就好比开关,遇1置为0
这样能很直观的看出四个符号的运算方式