我有一个结构数组(结构详见底部)
我想找到所有符合某些值的结构,例如,leg和site。
因此,如果leg = 101且site = 1024A,则返回符合这些条件的所有结构。
这样做的Go方式是什么?
type JanusDepth struct {
dataset string
ob string
leg string
site string
hole string
age float64
depth float64
long float64
lat float64
}
答案 0 :(得分:10)
死简单:
leg := "101"
site := "1024A"
filtered := []JanusDepth{}
for _, e := range MyArrayOfStructs {
if(e.leg == leg && e.site == site) {
filtered = append(filtered, e)
}
}
// filtered contains your elements
答案 1 :(得分:2)
如果您的数据是按一个键排序的,那么您可以使用http://golang.org/pkg/sort/#Search进行二进制搜索,如果数据量适中,则可以提高性能。