首页 > 解决方案 > 在 Golang 中添加 2 个数组类型

问题描述

我有一个type被调用EmployeeList的,它只是一个Employee结构数组。

如果我必须添加/组合EmployeeList对象,我想我可以按如下方式添加它们

package main

import (
  "fmt"
)

type Employee struct {
  Id      int    `json:"id"`
  Name string    `json:"name"`
}

type EmployeeList []Employee

func main() {
  listA := EmployeeList{
    Employee{Id: 1, Name: "foo"},
    Employee{Id: 2, Name: "bar"},
  }

  listB := EmployeeList{
    Employee{Id: 3, Name: "baz"},
  }

  // Print the combined lists
  fmt.Println(append(listA, listB))
}

但是append抛出一个错误:

./prog.go:24:21: cannot use listB (type EmployeeList) as type Employee in append

我知道它与不匹配/意外的类型有关,但我不确定如何将这两个列表添加在一起?

谢谢!

标签: arraysgostruct

解决方案


您不能将 an 附加EmployeeListEmployee. 但是因为EmployeeList被定义为 的列表Employee,所以您可以解压该数组并将其元素附加到listA. 您可以使用....

append(listA, listB...)

(参考类似的答案https://stackoverflow.com/a/16248257/5666087


推荐阅读