У меня есть интерфейс map [string] {} с именем mapped:
mapped map[stringinterface{}
Я хочу выполнить итерацию, проверяя, существует ли какой-либо из этих ключей:
Тогда, если это так, я хочу добавить строку или столбец к фрагменту строк с именем:
Я понимаю, что, если мне просто нужно было найти, например, столбцы, внутри сопоставленного, я могу сделать это:
var columnOrRowArray []string
if 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»
Очевидно, я знаю, что синтаксис для этого неправильный, но я не могу найти пример того, как кто-то делает это