Go学习笔记-字符和字符串类型
字符基本介绍
Go中没有专门的字符类型,如果要存储单个字符(字母),一般使用byte来保存。
字符串就是一串固定长度的字符连接起来的字符序列。Go的字符串是由单个字节连接起来的。也就是说对于传统的字符串是由字符组成的,而Go的字符串不同,它是由字节组成的。
示例:
package main
import "fmt"
func main() {
var a byte = 'a'
fmt.Println(a) // 码值
fmt.Printf("a=%c\n", a) // 需格式化输出
// var b byte = '淦' // 溢出
var b int = '淦'
fmt.Printf("b=%c b对应码值=%d", b, b)
}
PS E:\go_code\src\note> go run .\string.go
97
a=a
b=淦 b对应码值=28134
说明:
- 如果我们保存的字符在ASCII表的如【0-1,a-z,A-Z】直接可以保存到byte
- 如果我们保存的字符对应码值大于255,我们可以考虑使用int类型保存
- 需要按照字符的方式输出,需格式化输出,即 %c
字符类型使用细节
- 字符常量是用单引号括起来的单个字符,如上述代码。
- Go中允许使用转义字符 “\” 来将其后的字符转变为特殊字符型常量。如:var c char = ‘\n’ 表示换行符。
- Go语言的字符使用UTF-8编码。
- Go中,字符的本质是一个整数,直接输出时,是该字符对应的UTF-8编码的码值。
- 可以直接给某个变量赋值一个数字,然后按格式化输出时%c,会输出该数字对应的unicode字符。
- 字符类型是可以进行运算的,相当于一个整数,因为它都有对应的unicode吗。
string类型
字符串就是一串固定长度的字符连接起来的字符序列。Go的字符串是由单个字节连接起来的。Go语言的字符串的字节使用UTF-8编码标识unicode文本。
string使用细节
- 统一UTF-8编码。
- 字符串一旦赋值就不能修改了(内容)。
- 字符串的两种表示形式
1) 双引号,会识别转义字符。
2) 反引号,以字符串的原生形式输出,包括换行和特殊字符,可以实现防止攻击、输出源代码等效果。 - 字符串拼接方式: + 号