go关于string与[]byte再学深一点
在Go语言中,string
和[]byte
是两种常见的字符串类型。string
是不可变的,而[]byte
是可变的。[]byte
可以用来表示ASCII和UTF-8编码的字符串。
- 将string转换为[]byte
str := "Hello, World"
byteSlice := []byte(str)
fmt.Println(byteSlice)
- 将[]byte转换为string
byteSlice := []byte{72, 101, 108, 108, 111, 44, 32, 87, 111, 114, 108, 100}
str := string(byteSlice)
fmt.Println(str)
- 使用
[]byte
的append
函数进行字符串拼接
var byteSlice []byte
byteSlice = append(byteSlice, []byte("Hello")...)
byteSlice = append(byteSlice, []byte(", ")...)
byteSlice = append(byteSlice, []byte("World")...)
str := string(byteSlice)
fmt.Println(str)
- 使用
[]byte
的copy
函数进行字符串复制
src := []byte("Hello, World")
dst := make([]byte, len(src))
copy(dst, src)
fmt.Println(string(dst))
- 使用
bytes
包的Buffer
进行字符串拼接
var buffer bytes.Buffer
buffer.Write([]byte("Hello"))
buffer.Write([]byte(", "))
buffer.Write([]byte("World"))
str := buffer.String()
fmt.Println(str)
- 使用
strings
包的Builder
进行字符串拼接
var builder strings.Builder
builder.Write([]byte("Hello"))
builder.Write([]byte(", "))
builder.Write([]byte("World"))
str := builder.String()
fmt.Println(str)
以上都是Go语言中常见的字符串和[]byte
之间的转换和操作方法。
评论已关闭