Navigation
阅读进度0%
No headings found.

Go String 高级用法:不可变性与 UTF-8 编码

December 19, 2024 (1y ago)

Go
String
UTF-8

章节概述如下

这里讲的string类型的高级用法

package main
import "fmt"
 
// 这一讲的主要内容是看string的特性
 
func main()  {
	T1()
}
 
// 1. string实际上是一个不可变的 byte切片
func T1()  {
	s := ""
    s =" 123"
	// s[1] = 3 // 会报错哈 
 
	s = "\xE4\xB8\xA5" // 这个旧是报错了一个 任何二进制的 数据
 
	fmt.Println(s)
 
	// 格式化输出
	c := []rune("")
	fmt.Printf("中 unicode %x" ,c )
	fmt.Printf("中 UT8 %x" ,  "")
}
 
// 2. 字符和字符集
// Unicode 是一种字符集
// UTF 是Unicode的物理编码实现规则
 
// 3. 区别
/*
字符             中
Unicode         0x4E2D
UTF8            0xE4B8AD
string/[]byte   [0xE4 ,0xB8, 0xAD]  // 存储形式
*/
 
// 4. 常见的处理string的包 字符串的文档可以去查包文档哈
// strings
// strconv 
 
// 字符串如何去遍历?
func T2()  {
  s := "中国"
   for _,c = range s {
	   fmt.Printf("%[1]c %[1]x",c) // "%[1]c 就是拿出来哈"
   } 
}