在網上我看到了兩種在 Go 中將字節數組轉換為字符串的方法。方法一:func convert(myBytes byte[]) string { myString := string(myBytes[:]) return myString}方法二:func convert(b []byte) string { return *((*string)(unsafe.Pointer(&b)))}有什么不同?哪個更快?我應該使用哪一個?
1 回答
皈依舞
TA貢獻1851條經驗 獲得超3個贊
第一種形式將字節切片復制到一個新數組,并創建一個指向它的字符串。第二個創建一個指向給定字節片的字符串。
第一個是安全的,但是有復制操作。第二個是不安全的,如果您修改給定字節切片的內容,程序將因難以診斷的錯誤而中斷,因為字符串應該是不可變的。但它沒有復制操作。
這是瓶頸的可能性很小。數組復制是一項快速操作。使用第一個版本。
- 1 回答
- 0 關注
- 179 瀏覽
添加回答
舉報
0/150
提交
取消
