Go 合并两个结构体切片
时间: 2023-08-24 16:06:02 浏览: 121
golang 两个go程轮流打印一个切片的实现
假设我们有两个结构体切片 `s1` 和 `s2`,它们的类型分别为 `[]Struct1` 和 `[]Struct2`。我们可以使用 `append()` 函数将它们合并成一个新的结构体切片。
具体操作如下:
```go
// 定义结构体类型
type Struct1 struct {
// ...
}
type Struct2 struct {
// ...
}
// 定义结构体切片
s1 := []Struct1{ /* ... */ }
s2 := []Struct2{ /* ... */ }
// 合并结构体切片
var result []interface{}
for _, v := range s1 {
result = append(result, v)
}
for _, v := range s2 {
result = append(result, v)
}
```
这里我们定义了一个 `result` 变量,它的类型为 `[]interface{}`。这是因为 `s1` 和 `s2` 的元素类型不同,无法直接合并成一个新的结构体切片。因此,我们使用 `interface{}` 类型来统一它们的类型。
接下来,我们使用两个 `for` 循环分别将 `s1` 和 `s2` 中的元素追加到 `result` 中,最终得到一个合并后的结构体切片。
阅读全文