golang之判断元素是否在数组内问题
作者:我的猫叫土豆 发布时间:2024-03-15 02:24:49
标签:golang,判断元素,数组
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
0
投稿
猜你喜欢
- 对于初学者,入门至关重要,这关系到初学者是从入门到精通还是从入门到放弃。以下是结合Python的学习经验,整理出的一条学习路径,主要有四个阶
- 学习关键语句:vue连接mysql数据库vue项目连接后台数据库配置vue通过node连接MySQL数据库写在前面为了快速学习nodejs制
- 目前在网上搜到的利用 PyCharm 调试远程服务器程序的教程大多都是针对 PyCharm 2020、2019,甚至更早版本,PyCharm
- 本文介绍如果使用python汇总常用的图表,与Excel的点选操作相比,用python绘制图表显得比较比较繁琐,尤其提现在对原始数据的处理上
- python 消除序列的重复值,并保持原来顺序1、如果仅仅消除重复元素,可以简单的构造一个集合$ pythonPython 3.5.2 (d
- 最近用到了mysql5.7的json字段的检索查询,发现挺好用的,记录一下笔记我们有一个日志表,里面的data字段是保存不同对象的json数
- 我对这两种连接方式认识不够深,似乎朋友们对此也没有定论。请问哪一种更好呢?DSN是采用数据源的连接方式,其使用方法是: Conn.
- 本文实例讲述了Python操作json的方法。分享给大家供大家参考,具体如下:python中对json操作方法有两种,解码loads()和编
- 0、背景shutil.move可以实现文件或者目录的移动。打印:import shutilhelp(shutil.move)# 打印如下:&
- (1)数据记录筛选: sql="select*from数据表where字段名=字段值orderby字段名[desc]"
- SQL登录时如果采用windows集成身份验证,登录框将会以“机器名\当前系统用户名”的格式显示登录名,而且登录名和密码都是灰色的,不允许用
- 前言:本文的主要内容是介绍Python中字典及其使用,包括使用字典(添加、删除、修改等操作)、遍历字典以及字典与列表之间的嵌套使用,文中附有
- 这篇文章主要介绍了简单了解Django ORM常用字段类型及参数配置,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习
- 做为一个编程爱好者,也作为一个小站长(asp之家),中国站长站(www.chinaz.com)我时不时的都会去灌一下。当然发现好的文章我也不
- 数据库是什么 在学习ACCESS之前,我们先了解一下什么是“数据库”。我们举个例子来说明这个问题:每个人都有很多亲戚和朋友,为了保持与他们的
- 最近老是要为现在这个项目初始化数据,搞的很头疼,而且数据库的Id自增越来越大,要让自增重新从1开始:那么就用下面的方法吧:方法一:如果曾经的
- 一、ini文件介绍INI文件格式是某些平台或软件上的配置文件的非正式标准,以节(section)和键(key)构成,常用于微软Windows
- 这篇文章主要介绍了pandas 空数据处理方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可
- 使用python生成一个图片验证码,随机的,可以由于验证人机和别的啊,很方便很简单导入模块import randomfrom PIL imp
- 在MAC/LINUX环境下,执行vi hello.py命令,并输入以下代码import webimport sysurls = ("