在内部有切片的两个结构之间传递值
Passing values between two structs thats have a slice inside
我有 2 个结构,里面有一个切片,如下所示:
type BookX struct {
SomeValue string
Book1 []Book1
}
type Book1 struct {
Name string
Author string
}
type BookY struct {
SomeValue string
Book2 []Book2
}
type Book2 struct {
Name string
Author string
}
我想将结构 BookX 中第一个切片中的值传递给 BookY 中的另一个切片。
试过这种方法但不起作用:
func someName(bookX BookX){
var bookY BookY
bookY.Book2 = append(bookY.Book2, bookX.Book1...)
}
Book1
和 Book2
是不同的类型,即使它们具有相同的成员。您不能将 []Book1
附加到 []Book2
。
一个解决方案是从 Book1
创建一个 Book2
实例并将它们添加到 []Book2
。
func someName(bookX BookX){
var bookY BookY
for _, book1 := range bookx.Book1 {
book2 := Book2 {
Name: book1.Name,
Author: book1.Author,
}
bookY.Book2 = append(bookY.Book2, book2)
}
}
我有 2 个结构,里面有一个切片,如下所示:
type BookX struct {
SomeValue string
Book1 []Book1
}
type Book1 struct {
Name string
Author string
}
type BookY struct {
SomeValue string
Book2 []Book2
}
type Book2 struct {
Name string
Author string
}
我想将结构 BookX 中第一个切片中的值传递给 BookY 中的另一个切片。
试过这种方法但不起作用:
func someName(bookX BookX){
var bookY BookY
bookY.Book2 = append(bookY.Book2, bookX.Book1...)
}
Book1
和 Book2
是不同的类型,即使它们具有相同的成员。您不能将 []Book1
附加到 []Book2
。
一个解决方案是从 Book1
创建一个 Book2
实例并将它们添加到 []Book2
。
func someName(bookX BookX){
var bookY BookY
for _, book1 := range bookx.Book1 {
book2 := Book2 {
Name: book1.Name,
Author: book1.Author,
}
bookY.Book2 = append(bookY.Book2, book2)
}
}