栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何创建包含唯一字符串的数组?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何创建包含唯一字符串的数组?

如果要收集唯一元素,则为Set数据类型。Go没有集合数据类型,但是您可以使用

map[string]bool
来充当集合。

对于“好的”集合,请使用具有

bool
值类型(带有
true
值)的映射并利用零值。对于内存占用最小的集合,请使用具有
struct{}
值类型的映射,因为类型的值不
struct{}
占用内存;并使用逗号分隔的习惯用法来判断值是否在集合/映射中。

这是set的“不错”版本的样子。代替切片,将元素添加到a

map[string]bool
作为键,将a
true
作为值:

m := make(map[string]bool)m["aaa"] = truem["bbb"] = truem["bbb"] = truem["ccc"] = true

要检查集合(地图)中是否已存在某个元素,您可以简单地使用一个索引表达式:

exists := m["somevalue"]

这将利用零值,也就是说,如果映射尚未包含元素,则返回值类型的零值(

false
如果为
bool
type,则返回零),正确指示该元素不在集合中。

地图中的元素没有固定的顺序。如果您需要保留顺序(例如插入顺序),请使用一个切片(记住该顺序)和一个映射(告诉要添加的元素是否是新元素)。这是最简单的帮助

add()
函数:

var m = make(map[string]bool)var a = []string{}func main() {    add("aaa")    add("bbb")    add("bbb")    add("ccc")}func add(s string) {    if m[s] {        return // Already in the map    }    a = append(a, s)    m[s] = true}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/471049.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号