golang怎么判断key是否在map中
代码:
if _, ok := map[key]; ok {//存在}
另外golang也没有提供item是否在array当中的判断方法,如果程序里面频繁用到了这种判断,可以将array转化为以array当中的成员为key的map再用上面的方法进行判断,这样会提高判断的效率。
示例:
package mainimport "fmt"func main() {//声明并初始化一个map,key是int64类型,value是string类型myMap := make(map[int64]string)myMap[1] = "value1"myMap[2] = "value2"myMap[5] = "value5"myMap[6] = "value6"//声明一个int64数组,然后遍历数组,num是数组中的元素,下划线_代表元素的下标位置for _, num := range []int64{1, 2, 3, 4, 5, 6} {//不关心数组中的value,用下划线代替//一般都习惯用ok变量表示是否包含,也可以用别的变量名字if _, ok := myMap[num]; ok {fmt.Printf("myMap中包含key:%d \n", num, )} else {fmt.Printf("myMap中不包含key:%d\n", num)}}fmt.Println("=================分割线=======================")for _, num := range []int64{1, 2, 3, 4, 5, 6} {//如果包含key,想知道value,就把返回值赋给一个变量,这儿用变量v//这儿用变量s表示是否包含指定的keyif v, s := myMap[num]; s {fmt.Printf("myMap中包含key:%d,value值为:%s\n", num, v)} else {fmt.Printf("myMap中不包含key:%d\n", num)}}}
运行后输出:
myMap中包含key:1 myMap中包含key:2 myMap中不包含key:3myMap中不包含key:4myMap中包含key:5 myMap中包含key:6 =================分割线=======================myMap中包含key:1,value值为:value1myMap中包含key:2,value值为:value2myMap中不包含key:3myMap中不包含key:4myMap中包含key:5,value值为:value5myMap中包含key:6,value值为:value6
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。