github.com/go-board/x-go@v0.1.2-0.20220610024734-db1323f6cb15/xunsafe/README.md (about) 1 # XUnsafe 2 3 在go里面, `[]byte` 和 `string` 的相互转换是非常频繁的,随之而来的是大量的内存分配,当长度越长时,对性能影响越大,所有提供了 `unsafe` 的转换方法。 4 5 > 当 `[]byte` 是由 `string` 通过 `unsafe` 转换而来的话,将不能进行更改操作,否则会panic,且无法恢复。 6 7 ## StringToBytes 8 9 ``` go 10 package main 11 import ( 12 "github.com/go-board/x-go/xunsafe" 13 ) 14 func main() { 15 bs := xunsafe.StringToBytes("hello,world!") 16 println(bs) 17 } 18 ``` 19 20 ## BytesToString 21 22 ``` go 23 package main 24 import ( 25 "github.com/go-board/x-go/xunsafe" 26 ) 27 28 func main() { 29 str := xunsafe.BytesToString([]byte{'h', 'e', 'l', 'l', 'o', ',', 'w', 'o', 'r', 'l', 'd', '!'}) 30 println(str) 31 } 32 ```