同時檢查多個映射中的鍵是否存在
問題:
問題:if v1, ok1 := map1["aaa"]; ok1 { ... } if v2, ok2 := map2["aaa"]; ok2 { ... }
但是,最好將這兩個條件濃縮為一個。這可以透過單一 if 語句來實現嗎?
答案:if v1, v2 := m1["aaa"], m2["aaa"]; v1 != nil && v2 != nil { fmt.Printf("Both maps contain key '%s': %v, %v\n", "aaa", v1, v2) }
func idx(m1, m2 map[string]interface{}, k string) ( v1, v2 interface{}, ok1, ok2 bool) { v1, ok1 = m1[k] v2, ok2 = m2[k] return }
if v1, v2, ok1, ok2 := idx(m1, m2, "aaa"); ok1 && ok2 { fmt.Printf("Both maps contain key '%s': %v, %v\n", "aaa", v1, v2) }
以上是如何同時有效率地檢查多個Go Map中某個key是否存在?的詳細內容。更多資訊請關注PHP中文網其他相關文章!