Go String转byte数组
时间: 2023-11-15 11:53:50 浏览: 161
在Go语言中,可以使用以下方法将字符串转换为字节数组:
```go
func StringToBytes(str string) []byte {
bytes := []byte(str)
return bytes
}
```
这个方法使用了`[]byte`类型的强制转换,将字符串转换为对应的字节数组。你只需要将要转换的字符串作为参数传入该函数即可。
相关问题
go如何用byte数组高效存储对象
在Go中,可以使用二进制序列化将对象转换为字节数组,以便高效地存储和传输。Go的标准库中提供了encoding/binary包,可以用来进行二进制序列化。
我们可以定义一个结构体,其中包含需要存储的字段:
```go
type Person struct {
Name string
Age int
}
```
然后,可以使用encoding/binary包中的方法将其转换为字节数组:
```go
import (
"bytes"
"encoding/binary"
)
p := Person{Name: "John", Age: 30}
buf := new(bytes.Buffer)
err := binary.Write(buf, binary.LittleEndian, p)
if err != nil {
// 处理错误
}
data := buf.Bytes()
```
在这个例子中,我们使用了binary.Write方法将Person结构体转换为字节数组,并将其写入一个缓冲区中。binary.LittleEndian指定了字节序为小端序,这样可以确保在不同的系统上都能正确解析字节数组。
最后,我们可以使用data变量来存储或传输这个对象。
要恢复原始对象,可以使用相同的二进制序列化方法:
```go
var p Person
err := binary.Read(bytes.NewReader(data), binary.LittleEndian, &p)
if err != nil {
// 处理错误
}
```
在这个例子中,我们使用binary.Read方法将字节数组转换回Person结构体。bytes.NewReader方法用来将字节数组转换为io.Reader接口,这样binary.Read就可以从中读取数据了。
go实现将byte的数组转换成string
在Go语言中,将`byte`类型的数组转换成字符串(`string`)非常直接,可以使用内置的`fmt.Sprintf()`函数,或者更简洁的是通过`[]byte`对角线运算符 `string(b)`。这里是一个简单的例子:
```go
package main
import "fmt"
func byteToString(b []byte) string {
return string(b)
}
func main() {
// 示例字节切片
bytes := []byte{'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd'}
// 转换为字符串
str := byteToString(bytes)
fmt.Println("Byte array as string:", str)
// 输出:Byte array as string: Hello World
}
```
在这个示例中,我们定义了一个名为`byteToString`的函数,它接收一个`byte`类型的数组作为输入,然后返回其对应的`string`表示。
阅读全文