结构体强制转成数组,结构体的定义是struct{int a;string b},转成整型数组
时间: 2024-05-05 13:15:45 浏览: 157
关于结构体指针类型的强制转换
由于结构体中包含了不同类型的数据,无法直接强制转换成整型数组。需要根据具体情况进行转换。
如果只需要将结构体中的整型数据转换成整型数组,可以定义一个整型数组,将结构体中的整型数据依次赋值给数组中的元素。例如:
```go
type myStruct struct {
a int
b string
}
func main() {
s := myStruct{a: 1, b: "hello"}
arr := [1]int{s.a} // 将结构体中的 a 字段转换成整型数组
fmt.Println(arr) // 输出 [1]
}
```
如果需要将结构体中的所有数据都转换成整型数组,可以将结构体中的不同类型数据转换成相同类型的数据,再将这些数据组成整型数组。例如:
```go
type myStruct struct {
a int
b string
}
func main() {
s := myStruct{a: 1, b: "hello"}
aBytes := []byte(s.a) // 将整型转换成字节数组
bBytes := []byte(s.b) // 将字符串转换成字节数组
var arr []int
for _, v := range aBytes {
arr = append(arr, int(v)) // 将字节数组中的每个字节转换成整型,添加到整型数组中
}
for _, v := range bBytes {
arr = append(arr, int(v)) // 将字节数组中的每个字节转换成整型,添加到整型数组中
}
fmt.Println(arr) // 输出 [49 104 101 108 108 111]
}
```
阅读全文