извините за базовый c вопрос ... Но я не смог найти более элегантный способ решить эту проблему ...
Ввод:
a = [
{ one=1, two=2, three=3},
{ two=2, three=3},
{ one=1, three=3},
]
В моем сценарии я есть что-то вроде
locals {
containers = [for i, c in var.a : merge(c, {
field1 = contains(keys(c), "one") ? c.one : "not defined"
field2 = contains(keys(c), "two") ? c.two : "not defined"
field3 = contains(keys(c), "three") ? c.three : "not defined"
lastfield = contains(keys(c), "one") ? (contains(keys(c), "two") ? "${c.one},${c.two}" : "${c.one}") : ""
})]
}
Есть ли более элегантный способ сделать это? По сути, я хочу добавить несколько полей к каждому элементу списка, и я должен проверить, что у элемента есть определенное поле и использовать это значение или значение по умолчанию.
Также «lastfield» должно ссылаться на field1 и field2, а не перепроверьте, если поле существует.
Я думаю, что путь к go состоит в том, чтобы иметь некоторые промежуточные нулевые_ресурсы для cal c field1, field2, field3 и u использовать их в lastfield, но это не было бы оптимальным. .
Будем благодарны за любые предложения:)
Спасибо!