课堂作业
请尝试运行以下代码,会发生什么?
func main() {
var a int = 65
b := string(a)
fmt.Println(b) // 输出:A
}
string()
表示把数据转换为文本格式,因为计算机中存储的任何东西本质上都是数字,string()
函数自然的认为我们需要用数字65表示的文本A。
如果要转换为字符串65
package main
import (
"fmt"
"strconv"
)
func main() {
var a int = 65
b := strconv.Itoa(a)
fmt.Println(b) // 输出:65
}
常量的定义
常量的值在编译时就已经确定
常量的定义格式与变量基本相同
等号右侧必须是常量或者常量表达式
常量表达式中的函数必须是内置函数
// 定义单个常量
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
是常量的计数器,从0开始,组内每定义1个常量自动递增1。
通过初始化规则与iota可以达到枚举的效果。
每遇到一个const
关键字,iota
就会重置为0。
const (
// a和b都为"A"
a = "A"
b
c = iota
d // d的值为3
)
const (
e = iota
f // f的值为1
)
// 星期枚举
const (
// 第一个常量不可省略表达式
Monday = iota
Tuesday
Wednesday
Thursday
Friday
Saturday
Sunday
)
运算符
优先级(从高到低)
^、!
*、/、%、<<、>>、&、&^
+、-、|、^
==、!=、<、<=、>=、>
<-
(专门用于channel)
&&、||