Go基础知识点(二) | 青训营笔记

83 阅读1分钟

这是我参与「第五届青训营 」笔记创作活动的第4天.

字符和字符串

在go语言中,你猜打印 'A' 会输出什么? 你会不会张口就来: "A" NO! 在go语言中打印'A'输出的不是字符,而是数字.

a1 := 'A'
a2 := "A"
fmt.Printf("%T,%s\n", a1, a1)
fmt.Printf("%T,%s", a2, a2)
image.png

显而易见,它是数字.

a1 := 'A'
a2 := "A"
fmt.Printf("%T,%d\n", a1, a1)
fmt.Printf("%T,%s", a2, a2)

这才是正确结果:

image.png

这是为啥呢? 其实这里的字符'A'代表的是十进制的65,在编码表 ASCII字符码中是这样规定的.

所有的中国字编码表: GBK

全世界的编码表: Unicode编码表

字符串连接:

认识一些转义字符:

//字符串的连接,两个字符串用+连接即可.
fmt.Println("hello" + ",kaungbiao")

//转义字符
//打印双引号
fmt.Println("hello"World")
fmt.Println("hello\tWorld")
fmt.Printf("hello\nWorld")
image.png

位运算符:

& (我和你) 都为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)
image.png

键盘输入输出:

输出:

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)

image.png