使用容器/列表包,您可以编写自己的循环来搜索内容。软件包中未提供此功能的原因可能就像Dystroy所说的那样,将隐藏O(n)操作。您无法添加方法,因此只需编写一个循环。for e := l.Front(); e != nil; e = e.Next() { data := e.Value.(dataType) // type assertion if /* test on data */ { // do something break }}它很简单,并且O(n)的复杂性很明显。在Go附带的支持搜索的数据结构的回顾中,请不要错过sort包。那里的函数允许切片以O(n log(n))排序,然后以O(log(n))时间进行二进制搜索。最后,正如Daniel所建议的,请考虑使用第三方软件包。对于容器类型,有一些流行和成熟的软件包。