如果有任意顺序的字符串片段,则查找该片段中是否存在值需要O(n)个时间.这适用于所有语言.

如果您打算反复进行搜索,可以使用其他数据 struct 来加快查找速度.然而,建造这些 struct 至少需要O(n)时间.因此,只有多次使用数据 struct 进行查找,才能获得好处.

set := make(map[string]bool)
for _, v := range list {
    set[v] = true
}

fmt.Println(set["b"])

您还可以对字符串片进行排序,然后执行二进制搜索.二进制搜索的时间为O(log(N)).构建可能需要O(n*log(N))时间.

sort.Strings(list)
i := sort.SearchStrings(list, "b")
fmt.Println(i < len(list) && list[i] == "b")

虽然理论上给定无限多的值,映射速度更快,但在实践中,搜索排序列表的速度很可能更快.你需要自己进行基准测试.