第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在 map[string]interface{} 中檢查多個鍵時使用 OR 邏輯

在 map[string]interface{} 中檢查多個鍵時使用 OR 邏輯

Go
哈士奇WWW 2023-06-01 16:22:59
我有一個名為 mapped 的 map[string]interface{}:mapped map[stringinterface{}我想遍歷它檢查是否存在這些鍵中的任何一個:列行如果是這樣,我想將行或列附加到一段名為:列或行數(shù)組我知道如果我只需要在映射中查找例如列,我可以這樣做:var columnOrRowArray []stringif columnsOrRows, ok := mapped["columns"].([]interface{}); ok {    for _, columnOrRow := range columnsOrRows {        if columnOrRowValueIsString, ok = columnOrRow.(string); ok {            columnOrRowArray = append(columnOrRowArray, columnOrRowValueIsString)        }    }}如果我不重復上面的使用映射[“行”]的行邏輯的方法,那將是一種干凈的方法?我想做一些基本上是這樣的事情:columnsOrRows, ok := mapped["columns"].([]interface{}) || mapped["rows"].([]interface{}); ok {所以用簡單的英語來說,“如果映射有列或行鍵,則分配給變量 columnsOrRows”顯然我知道語法是錯誤的,但我找不到有人這樣做的例子
查看完整描述

2 回答

?
互換的青春

TA貢獻1797條經(jīng)驗 獲得超6個贊

測試兩個鍵:


columnsOrRows, ok := mapped["columns"].([]interface{})

if !ok {

    columnsOrRows, ok = mapped["rows"].([]interface{})

}


if ok {

    for _, columnOrRow := range columnsOrRows {

        if columnOrRowValueIsString, ok = columnOrRow.(string); ok {

            columnOrRowArray = append(columnOrRowArray, columnOrRowValueIsString)

        }

    }

}


查看完整回答
反對 回復 2023-06-01
?
慕田峪9158850

TA貢獻1794條經(jīng)驗 獲得超7個贊

我不得不進行更廣泛的檢查。檢查地圖中是否存在任何可能的鍵(超過 2 個)。最后編寫了一個實用函數(shù)來完成任務并使代碼保持可讀性。


func StringInSlice(s string, list []string) bool {

    for _, item := range list {

        if item == s {

            return true

        }

    }

    return false

}


func AnyKeyInMap(keys []string, keyMap map[string]interface{}) bool {

    for k := range keyMap {

        if StringInSlice(k, keys) {

            return true

        }

    }

    return false

}

用法是:


mapped := make(map[string]interface{})

mapped["rows"] = true

if AnyKeyInMap([]string{"rows", "columns"}, mapped) {

    fmt.Println("exists")

}

你可以在這里玩: https ://play.golang.org/p/pz64YidEGMK


查看完整回答
反對 回復 2023-06-01
  • 2 回答
  • 0 關注
  • 141 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號