这是我参与「第五届青训营 」笔记创作活动的第4天.
字符和字符串
在go语言中,你猜打印 'A' 会输出什么? 你会不会张口就来: "A" NO! 在go语言中打印'A'输出的不是字符,而是数字.
a1 := 'A'
a2 := "A"
fmt.Printf("%T,%s\n", a1, a1)
fmt.Printf("%T,%s", a2, a2)
显而易见,它是数字.
a1 := 'A'
a2 := "A"
fmt.Printf("%T,%d\n", a1, a1)
fmt.Printf("%T,%s", a2, a2)
这才是正确结果:
这是为啥呢? 其实这里的字符'A'代表的是十进制的65,在编码表 ASCII字符码中是这样规定的.
所有的中国字编码表: GBK
全世界的编码表: Unicode编码表
字符串连接:
认识一些转义字符:
//字符串的连接,两个字符串用+连接即可.
fmt.Println("hello" + ",kaungbiao")
//转义字符
//打印双引号
fmt.Println("hello"World")
fmt.Println("hello\tWorld")
fmt.Printf("hello\nWorld")
位运算符:
& (我和你) 都为1时结果才为1
| (我或你) 其中一个为1 结果就为1
^ (异或) 不同为1,相同为0
<<位数 (左移) | >>位数 (右移)
// 二进制
// 60 0011 1100
// 13 0000 1101
// & 0000 1100
// | 0011 1101
// ^ 0011 0001 异或:不同为1,相同为0
// << 1111 0000 左移2位
// >> 0000 1111 右移2位
var a1 int = 60
var a2 int = 13
fmt.Printf("%d,二进制:%b\n", a1&a2, a1&a2)
fmt.Printf("%d,二进制:%b\n", a1|a2, a1|a2)
fmt.Printf("%d,二进制:%b\n", a1^a2, a1^a2)
var b1 int = a1 << 2
fmt.Printf("%d,二进制:%b\n", b1, b1)
a1 = 60
var b2 int = a1 >> 2
fmt.Printf("%d,二进制:%b", b2, b2)
键盘输入输出:
输出:
fmt.Print() 打印输出
fmt.Printf() 格式化输出
fmt.Println() 打印输出并换行
输入:
fmt.Scan() 接收输入
fmt.Scanf() 接收输入
fmt.Scanln() 接收输入
var a int
var b float64
fmt.Println("请输入两个数字 1.整数 2.浮点数")
fmt.Scanln(&a, &b)
fmt.Println(a)
fmt.Println(b)