golang判断key是否在map中的代码
个人常用函数
func IsContain(items []string, item string) bool { for _, eachItem := range items { if eachItem == item { return true } } return false }
使用方法
var word := "my" var sentence := []string{"my","word","in","a","sentence"} if IsContain(sentence){ //包含 }else{ //不包含 }
补充:golang中的正则匹配&判断元素是否在slice里或者数组里
1、正则匹配
package main import ( "fmt" "regexp" ) func main() { //pattern := "\\d+" //反斜杠要转义 pattern := "[a-zA-Z]" //匹配字母 str := "a1.22.35.4" result, _ := regexp.MatchString(pattern, str) fmt.Println(result) //true }
2、判断元素是否在slice里或者数组里
package main import "fmt" import "github.com/wxnacy/wgo/arrays" //go get github.com/wxnacy/wgo/arrays 安装包 func main() { str := "342" var numbers []string numbers = append(numbers, "3332", "342", "ssddd", "ssss", "%%%%") index := arrays.ContainsString(numbers, str) if index == -1 { fmt.Printf("not exists") //-1说明不存在 } else { fmt.Println(index) //存在则会返回元素的下标 } }
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。
相关推荐
-
Golang 使用map需要注意的几个点
1.简介 map 是 Golang 中的方便而强大的内建数据结构,是一个同种类型元素的无序组,元素通过另一类型唯一的键进行索引.其键可以是任何相等性操作符支持的类型, 如整数.浮点数.复数.字符串.指针.接口(只要其动态类型支持相等性判断).结构以及数组. 切片不能用作映射键,因为它们的相等性还未定义.与切片一样,映射也是引用类型. 若将映射传入函数中,并更改了该映射的内容,则此修改对调用者同样可见.未初始化的映射值为 nil. 使用示例如下: package main import "fmt&
-
Go语言中的Array、Slice、Map和Set使用详解
Array(数组) 内部机制 在 Go 语言中数组是固定长度的数据类型,它包含相同类型的连续的元素,这些元素可以是内建类型,像数字和字符串,也可以是结构类型,元素可以通过唯一的索引值访问,从 0 开始. 数组是很有价值的数据结构,因为它的内存分配是连续的,内存连续意味着可是让它在 CPU 缓存中待更久,所以迭代数组和移动元素都会非常迅速. 数组声明和初始化 通过指定数据类型和元素个数(数组长度)来声明数组. 复制代码 代码如下: // 声明一个长度为5的整数数组 var array [5]int
-
go 判断两个 slice/struct/map 是否相等的实例
可以通过 reflect.DeepEqual 比较两个 slice/struct/map 是否相等: package main import ( "fmt" "reflect" ) type A struct { s string } func main() { a1 := A{s: "abc"} a2 := A{s: "abc"} if reflect.DeepEqual(a1, a2) { fmt.Println(a1,
-
golang针对map的判断,删除操作示例
本文实例讲述了golang针对map的判断,删除操作.分享给大家供大家参考,具体如下: map是一种key-value的关系,一般都会使用make来初始化内存,有助于减少后续新增操作的内存分配次数.假如一开始定义了话,但没有用make来初始化,会报错的. 复制代码 代码如下: package main import ( "fmt" ) func main(){ var test = map[string]string{"姓名":"李四",&qu
-
golang判断key是否在map中的代码
个人常用函数 func IsContain(items []string, item string) bool { for _, eachItem := range items { if eachItem == item { return true } } return false } 使用方法 var word := "my" var sentence := []string{"my","word","in","a
-
详解Golang Map中的key为什么是无序的
目录 一.为什么是无序的? 二.GO 为什么要这么做? 三.遍历是否真的无序的 1.第一次遍历 2.第二次遍历 四.如何才能得到有序的键值对 总结 一.为什么是无序的? 开门见山,先上源码 func mapiterinit(t *maptype, h *hmap, it *hiter) { // decide where to start r := uintptr(fastrand()) if h.B > 31-bucketCntBits { r += uintptr(fastrand()) <
-
Golang判断struct/slice/map是否相等以及对比的方法总结
目录 前言 == 的对比方式 == 适用的类型 slice和map使用 == channel使用 == struct结构体使用== reflect.DeepEqual() 和cmp.Equal() reflect.DeepEqual() cmp.Equal() cmp和DeepEqual的区别 性能比较 总结 前言 平时开发中对比两个struct或者map.slice是否相等是经常遇到的,有很多对比的方式,比如==,reflect.DeepEqual(),cmp.Equal()等也是经常容易混淆
-
基于C++ map中key使用指针问题的详解
C++实际开发的过程会经常使用到map.map是一个key-value值对,key唯一,可以用find进行快速的查找.其时间复杂度为O(logN),如果采用for循环进行遍历数据时间复杂度为O(N).如果map中的数据量比较少时,采用find和for循环遍历的效率基本没有太大的区别,但是在实际的开发过程中,存储在map中的数据往往是大量的,这个时候map采用find方式效率比遍历效率高的多. 确定采用find方式查找数据后,我们需要考虑存储map的空间复杂度,对于基础数据类型的数据(int ch
-
在Map中实现key唯一不重复操作
Map中如何实现key唯一不重复 问题:如何做到Map中key唯一不重复,每次都遍历来equals比较吗? 首先,答案是否.如果全部遍历的话,当Map中元素很多的时候,显然查询效率低. 解释: HashMap属于散列存储结构,其table的存储是放在不同的Jvm内存区域.通过一个整型值来标识table的区域,相当于这个区域的下标.然后整个查找过程就从不再需要遍历整个table,只需遍历这一区域的数据即可. 结合HashMap.class中的put方法来说明: 如何找到这个区域呢? 1.首先将传入
-
java map中相同的key保存多个value值方式
目录 map中相同的key保存多个value值 如下代码 Map中相同的键Key不同的值Value实现原理 实现原理 总结 map中相同的key保存多个value值 在java中,Map集合中只能保存一个相同的key,如果再添加相同的key,则之后添加的key的值会覆盖之前key对应的值,Map中一个key只存在唯一的值. 如下代码 package test; import org.junit.Test; import java.util.HashMap; import java.util.Id
-
Java如何在Map中存放重复key
目录 如何在Map中存放重复key 1.概述 2.将集合作为Value 3.使用Apache Commons Collections 4.Guava Multimap 5.自定义MultiMap Map出现重复Key值叠加到上一个key中 如何在Map中存放重复key 1.概述 本文介绍几种处理Map中一个key对多个value的方法.在JDK标准Map实现中当我们尝试在一个key下插入多个value,那么后续的value会覆盖前面的value. Map<String, String> map
-
JavaScript中实现Map的示例代码
不废话了,直接贴代码了. 代码一: var map=new Map(); map.put("a","A");map.put("b","B");map.put("c","C"); map.get("a"); //返回:A map.entrySet() // 返回Entity[{key,value},{key,value}] map.containsKey('kevin'
-
Java8 Map中新增的方法使用总结
前言 得益于 Java 8 的 default 方法特性,Java 8 对 Map 增加了不少实用的默认方法,像 getOrDefault, forEach, replace, replaceAll, putIfAbsent, remove(key, value), computeIfPresent, computeIfAbsent, compute 和merge 方法.另外与 Map 相关的 Map.Entry 也新加了多个版本的 comparingByKey 和 comparingByVal
-
5个可以在Golang中优化代码以提高性能的技巧分享
作为一名软件工程师,确保你的代码高效且性能良好是非常重要的.在Golang中,有几个最佳实践和技术可以用来优化你的代码,以获得更好的性能.这里有五个技巧可以帮助你开始工作: 1.明智地使用指针.Golang使用指针来引用内存位置.虽然指针在某些情况下很有用,但如果过度或不正确地使用,它们也会导致性能下降.例如,使用指针向函数传递大的结构或 slice 会导致不必要的内存分配和复制.相反,可以考虑通过值传递这些类型. // Bad: Passing a large slice by pointer
随机推荐
- asp.net中页面显示当前系统时间附图
- 算法系列15天速成 第九天 队列
- asp.net中出现CGI Timeout的解决办法
- java读取PHP接口数据的实现方法
- PHP实现支付宝即时到账功能
- Android程序开发之防止密码输入错误 密码明文显示功能
- 在mac上如何使用终端打开XAMPP自带的MySQL
- fleaphp crud操作之find函数的使用方法
- js实现界面向原生界面发消息并跳转功能
- php生成唯一数字id的方法汇总
- js function使用心得
- 常用的9个JavaScript图表库详解
- 轻松实现TensorFlow微信跳一跳的AI
- java实现的连接数据库及模糊查询功能示例
- Python实现将字符串的首字母变为大写,其余都变为小写的方法
- Yii框架函数简单用法分析
- jquery实现侧边栏左右伸缩效果的示例
- vue data恢复初始化数据的实现方法
- js实现简单放大镜效果
- PHP 面向对象程序设计之类属性与类常量实现方法分析