【发布时间】:2021-06-05 20:27:39
【问题描述】:
我有一个创建和存储书籍的结构,如下所示。
type Book struct {
Authors [] string
ISBN string
Countries [] string
Category string
}
type Books []Book
然后我定义如下值。
test123 := Books{}
test123 = append(test123, Book{
Authors: []string{"Alice", "John", "Bob"},
Countries: []string{"CA", "US", "DE"},
ISBN: "1234567",
Category: "sci-fi",
})
test123 = append(test123, Book{
Countries: []string{"UK"},
Category: "comic book",
ISBN: "0001298",
})
test123 = append(test123, Book{
Authors: []string{"Alice", "Bob"},
Countries: []string{"UK"},
Category: "comic book",
ISBN: "0001298",
})
test123 = append(test123, Book{
ISBN: []string{"FR", "AU"},
Category: "sci-fi",
})
并非每个 Book 结构都包含所有已定义的元素。因此,某些 Book 结构元素可能没有 ISBN 和/或 Country 值。
如何在这样的结构中进行搜索?例如,我将 DE 作为 Country 值,然后将 Alice 作为 Author 值。当给定 Alice 和 DE 的值时,如何编写可以查找和检索相关元素的代码?
更新
@Cerise Limón 和@gonutz 我没有准确地问过这个问题,对不起。此代码仅适用于 DE 和 Alice 值,不适用于其他值。对于其他组合,我必须编写由 if 和 else 组成的代码块。事实上,无论我将给出什么值,我都想创建在任何切片结构中搜索时都能找到值的算法。有可能吗?
示例场景 - 1: 我对爱丽丝国家的作者有 DE 值。我想在 Books 结构中找到包含这些值的“切片”。
示例场景 - 2: 我有 ISBN 的 123456,国家/地区的 FR,作者的 Bob。我想在 Books 结构中找到包含这些值的“切片”。
换句话说,我将作为输入提供的值的类型和数量可以不同。
【问题讨论】:
-
我没有准确地问过这个问题,对不起。我更新了问题。
-
不清楚你在问什么。如果您编辑问题以显示输入和预期输出,将会很有帮助。