笔记背景
已经学完了C/C++
再学习Golang这门语言
字符串
"字符串":可解释型字符串 实现转义字符的效果
`字符串`:原生型字符串 转义字符的效果不实现
(`字符通常位于键盘左上角)
字符串可以进行拼接
字符串可以进行比较(按照字典序) 实现关系运算
字符串可以使用切片(前闭后开的区间)提取子串
字符串可以使用len()函数计算长度
但以上两点要求字符串只包含ASCLL码(uint8)
// "" 可解释型的字符串
var str0 string = "\thello"
// `` 原生型的字符串
var str1 string = `\t你好`
// 区别 前者会实现特殊字符的效果 而后者不会
fmt.Println(str0)
fmt.Println(str1)
//字符串连接
fmt.Println("今天" + "好开心")
str2 := "你是"
str2 += "苹果"
fmt.Println(str2)
//字符串关系运算 字典序比较
fmt.Println("a" > "b")
//访问字符串中的部分内容
//要求字符串中只包含ASCII码(uint8)的字符 不能含有中文
//区间前闭后开
str3 := "happy"
fmt.Println(str3[0:2])
//字符串长度函数
//要求字符串中只包含ASCII码(uint8)的字符 不能含有中文
fmt.Println(len(str3))
switch语句
与C/C++不同语句块中的每一个case执行完后直接退出Switch语句
不需要加break
每一个case可以用逗号分隔出多种进入条件
//switch语句
var answer string
fmt.Scan(&answer)
switch answer {
case "y", "Y":
fmt.Println("同意")
case "n", "N":
fmt.Println("否定")
default:
fmt.Println("其他")
}
for语句
可以利用break标签快捷跳出多重循环
标签应当放在所需跳出的循环的前一行
可以利用range语句遍历字符串
//for语句
var sum int = 0
for i := 0; i <= 100; i++ {
sum += i
}
fmt.Println(sum)
sum = 0
i := 1
for i <= 100 {
sum += i
i++
}
fmt.Println(sum)
sum = 0
i = 0
for {
sum += i
i++
if i == 101 {
break
}
}
fmt.Println(sum)
str4 := "hello world"
for i, ch := range str4 {
//由单引号围绕的字符字面值 由Go语法安全地转义
fmt.Printf("%d %q\n", i, ch)
}
//break标签
var p, q int
breakLabel:
for p = 0; p < 5; p++ {
for q = 0; q < 5; q++ {
if p*q == 9 {
break breakLabel
}
fmt.Println(p, q, p*q)
}
}
fmt.Println(p, q, p*q)
}