在Go中將字符串類型轉(zhuǎn)換為字節(jié)切片是可以的,甚至聽起來合乎邏輯,如下面的示例所示()。[]byte(s)問題是這種轉(zhuǎn)換背后的規(guī)則是什么?此轉(zhuǎn)換在哪里定義以使其適用?另外,這種轉(zhuǎn)換的背后是什么,這意味著,幕后做了什么?在 中找不到它。builtin.go工作實例:package mainimport ( "fmt")func main() { s := "A string" myBytes := []byte(s) // The conversion fmt.Println(s) fmt.Println(myBytes)}如果我用它替換它失敗,我理解為不是。這意味著轉(zhuǎn)換是特定的,那么在哪里定義特異性?[]byte(s)[]int(s)cannot convert s (type string) to type []intintuint8/byte
1 回答

溫溫醬
TA貢獻(xiàn)1752條經(jīng)驗 獲得超4個贊
如果您對 Go 編譯器/運行時中發(fā)生這種情況的位置感興趣,請查看函數(shù):https://golang.org/src/runtime/string.go?s=4341:4393#L155runtime.stringtoslicebyte
對此函數(shù)的調(diào)用由編譯器生成(嘗試運行以查看它)go tool compiler -l -S <your-go-file.go>
[請注意,在撰寫本文時,在 Go 1.15 中,情況確實如此,將來可能會更改]
- 1 回答
- 0 關(guān)注
- 123 瀏覽
添加回答
舉報
0/150
提交
取消