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,判断元素,数组
0
投稿

猜你喜欢

  • python time模块时间戳 与 结构化时间详解

    2021-04-09 11:06:42
  • python ChainMap的使用详解

    2023-10-31 18:02:40
  • 基于OpenCV和Gradio实现简单的人脸识别详解

    2022-10-21 22:59:11
  • Python自然语言处理之切分算法详解

    2023-02-02 04:46:34
  • Python Matplotlib绘制箱线图的全过程

    2023-12-03 21:37:39
  • 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
  • 解读! Python在人工智能中的作用

    2022-02-20 20:51:54
  • python实现猜拳游戏项目

    2023-02-25 15:15:30
  • Python实现的删除重复文件或图片功能示例【去重】

    2023-12-25 00:49:07
  • Python+pytorch实现天气识别

    2021-09-23 18:49:13
  • 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
  • PHP引用符&的用法详细解析

    2023-10-17 17:25:53
  • 网站重构到底是什么

    2008-11-03 11:30:00
  • python+selenium实现QQ邮箱自动发送功能

    2021-11-11 22:03:58
  • python常用时间库time、datetime与时间格式之间的转换教程

    2023-05-03 01:24:37
  • asp之家 网络编程 m.aspxhome.com