golang判断slice中是否存在某个item

栏目: Go · 发布时间: 7年前

内容简介:之前在项目中需要判断某个slice中是否包含某个元素,当时自己的做法是遍历slice中的每个元素,直到找到了该元素,否则返回false。这种做法是最容易想到,也是最简单的。但是存在一个问题:就是只能对一种数据类型判断,比如上面代码中的int、[]int,如果需要判断其它类型,需要写一个同样的函数,只是参数类型不一样,这样的代码很明显,可用性太低。后来发现可以用反射规避这个问题,利用reflect包中的TypeOf()、ValueOf()和DeepEqual()接口,接口说明请参考文档。代码如下:

之前在项目中需要判断某个slice中是否包含某个元素,当时自己的做法是遍历slice中的每个元素,直到找到了该元素,否则返回false。

golang判断slice中是否存在某个item

simple.pic

这种做法是最容易想到,也是最简单的。但是存在一个问题:就是只能对一种数据类型判断,比如上面代码中的int、[]int,如果需要判断其它类型,需要写一个同样的函数,只是参数类型不一样,这样的代码很明显,可用性太低。

后来发现可以用反射规避这个问题,利用reflect包中的TypeOf()、ValueOf()和DeepEqual()接口,接口说明请参考文档。代码如下:

golang判断slice中是否存在某个item

reflect.pic

瞬间不用再为不同数据类型需要写不同函数而心烦了!

注:参考blog,https://wxnacy.com/2018/11/20/go-in-array/

Thanks!!!


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

创意,未来的工作方式

创意,未来的工作方式

方军 / 中信出版社 / 2016-11-20 / 58.00元

知识工作者已成过去,创意工作者才是未来 工作的本质是创意 纵观我们身处的世界,除了自然美景,世间或伟大或平凡的事物,几乎都是人观念革新的产物,它们多数是我们在工作过程中群体创意的产物。 从工业时代到知识时代,大多数人通过掌握新知、持续学习,获得社会的认可和回报;但进入以大数据、人工智能、机器人为标志的新时代,单纯的学习已经不能满足社会对人的要求。算法和机器人正在取代人类很多重复性......一起来看看 《创意,未来的工作方式》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

HEX CMYK 转换工具
HEX CMYK 转换工具

HEX CMYK 互转工具