golang之判断元素是否在数组内问题
作者:我的猫叫土豆 时间:2024-03-15 02:24:49
golang判断元素是否在数组内
众所周知,golang里没有像python的in来判断元素是否在list里存在,可替代的办法是将list放到map里,在map里判断元素是否存在
// 已知list中元素"amber","jack"
arr := [...]string{"amber","jack"}
// 初始化map
var set map[string]struct{}
set = make(map[string]struct{})
// 上面2部可替换为set := make(map[string]struct{})
// 将list内容传递进map,只根据key判断,所以不需要关心value的值,用struct{}{}表示
for _, value := range arr{
set[value] = struct{}{}
}
// 检查元素是否在map
if _, ok := set["amber"];ok {
fmt.Println("amber is in the list")
} else {
fmt.Println("amber is not in the list")
}
golang判断一个目标元素是否在目标数组中
目标数组只能包含整形、字符串、布尔类型等基本类型
目标元素只能包含整形、字符串、布尔类型等基本类型
非interface数组需要先转换为对于的interface数组
其余基本类型的转换按思想实现即可
import "reflect"
func FolatArray2Interface(array []float32) []interface{} {
var goalArray []interface{}
for _, value := range array {
goalArray = append(goalArray, value)
}
return goalArray
}
func IntArray2Interface(array []int) []interface{} {
var goalArray []interface{}
for _, value := range array {
goalArray = append(goalArray, value)
}
return goalArray
}
func StringArray2Interface(array []string) []interface{} {
var goalArray []interface{}
for _, value := range array {
goalArray = append(goalArray, value)
}
return goalArray
}
func InArray(array []interface{}, element interface{}) bool {
// 实现查找整形、string类型和bool类型是否在数组中
if element == nil || array == nil {
return false
}
for _, value := range array {
// 首先判断类型是否一致
if reflect.TypeOf(value).Kind() == reflect.TypeOf(element).Kind() {
// 比较值是否一致
if value == element {
return true
}
}
}
return false
}
来源:https://blog.csdn.net/ambzheng/article/details/107295240
标签:golang,判断元素,数组
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
python time模块时间戳 与 结构化时间详解
2021-04-09 11:06:42
![](https://img.aspxhome.com/file/2023/8/70078_0s.png)
python ChainMap的使用详解
2023-10-31 18:02:40
基于OpenCV和Gradio实现简单的人脸识别详解
2022-10-21 22:59:11
![](https://img.aspxhome.com/file/2023/2/127772_0s.png)
Python自然语言处理之切分算法详解
2023-02-02 04:46:34
![](https://img.aspxhome.com/file/2023/3/80503_0s.png)
Python Matplotlib绘制箱线图的全过程
2023-12-03 21:37:39
![](https://img.aspxhome.com/file/2023/7/127737_0s.png)
pip install urllib2不能安装的解决方法
2022-05-27 12:25:13
MySQL索引查询limit offset及排序order by用法
2024-01-20 19:55:53
Python封装解构以及丢弃变量
2022-08-10 07:55:58
![](https://img.aspxhome.com/file/2023/1/115251_0s.png)
解读! Python在人工智能中的作用
2022-02-20 20:51:54
python实现猜拳游戏项目
2023-02-25 15:15:30
Python实现的删除重复文件或图片功能示例【去重】
2023-12-25 00:49:07
![](https://img.aspxhome.com/file/2023/6/102846_0s.png)
Python+pytorch实现天气识别
2021-09-23 18:49:13
![](https://img.aspxhome.com/file/2023/6/79566_0s.png)
java-SSH2实现数据库和界面的分页
2024-01-27 16:17:19
Python中使用中文的方法
2021-09-26 05:46:39
vue+Element实现登录随机验证码
2024-05-29 22:48:34
pycharm设置当前工作目录的操作(working directory)
2023-07-14 00:06:34
![](https://img.aspxhome.com/file/2023/6/93996_0s.jpg)
PHP引用符&的用法详细解析
2023-10-17 17:25:53
网站重构到底是什么
2008-11-03 11:30:00
python+selenium实现QQ邮箱自动发送功能
2021-11-11 22:03:58
![](https://img.aspxhome.com/file/2023/4/125154_0s.png)
python常用时间库time、datetime与时间格式之间的转换教程
2023-05-03 01:24:37
![](https://img.aspxhome.com/file/2023/8/98958_0s.png)