溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

golang怎么判斷key是否在map中

發(fā)布時(shí)間:2020-06-17 11:58:19 來(lái)源:億速云 閱讀:318 作者:鴿子 欄目:編程語(yǔ)言

代碼:

if _, ok := map[key]; ok {
//存在
}

另外golang也沒(méi)有提供item是否在array當(dāng)中的判斷方法,如果程序里面頻繁用到了這種判斷,可以將array轉(zhuǎn)化為以array當(dāng)中的成員為key的map再用上面的方法進(jìn)行判斷,這樣會(huì)提高判斷的效率。

示例:

package main

import "fmt"

func main() {
	//聲明并初始化一個(gè)map,key是int64類型,value是string類型
	myMap := make(map[int64]string)

	myMap[1] = "value1"
	myMap[2] = "value2"
	myMap[5] = "value5"
	myMap[6] = "value6"

	//聲明一個(gè)int64數(shù)組,然后遍歷數(shù)組,num是數(shù)組中的元素,下劃線_代表元素的下標(biāo)位置
	for _, num := range []int64{1, 2, 3, 4, 5, 6} {
		//不關(guān)心數(shù)組中的value,用下劃線代替
		//一般都習(xí)慣用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,就把返回值賦給一個(gè)變量,這兒用變量v
		//這兒用變量s表示是否包含指定的key
		if v, s := myMap[num]; s {
			fmt.Printf("myMap中包含key:%d,value值為:%s\n", num, v)
		} else {
			fmt.Printf("myMap中不包含key:%d\n", num)
		}
	}
}

運(yùn)行后輸出:

myMap中包含key:1 
myMap中包含key:2 
myMap中不包含key:3
myMap中不包含key:4
myMap中包含key:5 
myMap中包含key:6 
=================分割線=======================
myMap中包含key:1,value值為:value1
myMap中包含key:2,value值為:value2
myMap中不包含key:3
myMap中不包含key:4
myMap中包含key:5,value值為:value5
myMap中包含key:6,value值為:value6
向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI