diff --git a/base/string/main.go b/base/string/main.go index 370a939..d61a077 100644 --- a/base/string/main.go +++ b/base/string/main.go @@ -6,12 +6,14 @@ import ( ) func main() { - // golang 中 字符串 使用 双引号 包裹 + // golang 中 字符串 使用 双引号 包裹, 字符编码为 utf-8 // 字符串为 string 类型 + // 字符串不可直接修改 只能强制转换为 byte 或 rune/int32 类型 进行操作 s1 := "Hello World!" - // golang 中 单个字符(中文、字符、符号) 使用 单引号 包裹 + // golang 中 单个字符(中文、字符、符号) 使用 单引号 包裹 // 单字符为 rune 类型, rune 为 int32 别名 + // 一个英文字符占 1个 byte, 一个 中文字符 占 3个 byte c1 := '你' c2 := '好' c3 := ',' @@ -25,11 +27,20 @@ func main() { // []rune 字符数组 r1 := []rune{c1, c2, c3, c4, c5} + // []int32 数组 + i1 := []int32{c1, c2, c3, c4, c5} + + fmt.Printf("r1 => %T %#v, i1 => %T %#v\n", r1, r1, i1, i1) + // rune 转 string s2 := string(r1) + // string 转 []byte + b1 := []byte(s2) fmt.Printf("s2: %s\n", s2) + fmt.Printf("b1: []byte: %+v \t string: %s\n", b1, b1) + fmt.Println("=========================================================") // 多行字符串