string与byte的转换是最常见的一种,通常我们会使用强转方式,但其实还有另一种更加高效的方式,本文会演示两种转换方式。
func main() {
fmt.Println([]byte("abcd"))
fmt.Println(string([]byte{'1', '2', '3'}))
}
输出
[97 98 99 100]
123
转换实现如下
func main() {
fmt.Println(StringToBytes("abcd"))
fmt.Println(BytesToString([]byte{'1', '2', '3'}))
}
func BytesToString(b []byte) string {
return *(*string)(unsafe.Pointer(&b))
}
func StringToBytes(s string) []byte {
return *(*[]byte)(unsafe.Pointer(
&struct {
string
Cap int
}{s, len(s)},
))
}
输出
[97 98 99 100]
123
欢迎关注,学习不迷路!