我正在從C背景開始自學。下面的代碼按照我的預期工作(前兩個將訪問字節,最后兩個將訪問代碼點)。Printf()Printf()我不清楚的是,這是否涉及任何數據復制。package mainimport "fmt"var a stringfunc main() { a = "èe" fmt.Printf("%d\n", a[0]) fmt.Printf("%d\n", a[1]) fmt.Println("") fmt.Printf("%d\n", []rune(a)[0]) fmt.Printf("%d\n", []rune(a)[1])}換句話說:確實創建了一個符文數組,并用對應于 的符文填充它,或者只是編譯器來弄清楚如何從字符串字節中獲取符文?[]rune("string")"string"
2 回答

慕的地10843
TA貢獻1785條經驗 獲得超8個贊
如果不分配數組,就不可能將 []uint8(即字符串)轉換為 []int32([]符文的別名)。
此外,字符串在 Go 中是不可變的,但切片是不可變的,因此轉換為 []字節和 []rune 必須以某種方式復制字符串的字節。
- 2 回答
- 0 關注
- 85 瀏覽
添加回答
舉報
0/150
提交
取消