Go []字节到字符串转换最佳实践

在网上我看到了两种在 Go 中将字节数组转换为字符串的方法。

方法一:


func convert(myBytes byte[]) string {

   myString := string(myBytes[:])

   return myString

}

方法二:


func convert(b []byte) string {

    return *((*string)(unsafe.Pointer(&b)))

}

有什么不同?哪个更快?我应该使用哪一个?


扬帆大鱼
浏览 150回答 1
1回答

皈依舞

第一种形式将字节切片复制到一个新数组,并创建一个指向它的字符串。第二个创建一个指向给定字节片的字符串。第一个是安全的,但是有复制操作。第二个是不安全的,如果您修改给定字节切片的内容,程序将因难以诊断的错误而中断,因为字符串应该是不可变的。但它没有复制操作。这是瓶颈的可能性很小。数组复制是一项快速操作。使用第一个版本。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go