Как назначить новый список пустому полю, если он равен нулю, или просто добавить элемент в существующий список в Kotlin? - PullRequest
0 голосов
/ 21 января 2020

У меня есть объект media, который содержит descriptions, который является списком. Я хотел бы увидеть элегантную логику c в Kotlin, чтобы добавить элемент к этому descriptions, если поле не нулевое, или добавить новый список fre sh (с начальным элементом) к этому полю, если это равно ноль.

Псевдо:

if (media.descriptions == null) { media.descriptions = listOf("myValue")}
else { media.descriptions.add("myValue") }

Ответы [ 2 ]

0 голосов
/ 21 января 2020

Я бы, вероятно, сделал бы это наоборот, за исключением того, что вам нужно изменить само media (см. Ниже), т.е. сначала создать свой список и добавить все остальные записи в этот список, если media.descriptions не null:

val myDescriptions = mutableListOf("myValue") // and maybe others
media.descriptions?.forEach(myDescriptions::add)

Если вам нужно манипулировать описаниями media, вы не можете сделать так, чтобы сделать его более читабельным ...:

if (media.descriptions == null) {
  media.descriptions = mutableListOf("myValue") // just using mutable to make it clear
} else {
  media.descriptions += "myValue"
}

или, возможно, :

if (media.descriptions == null) {
  media.descriptions = mutableListOf<String>()
}
media.descriptions?.add("myValue")
0 голосов
/ 21 января 2020

Вы можете использовать оператор elvis ?: для назначения списка.

Самый простой способ, о котором я могу думать, это

media.descriptions = media.descriptions ?: listOf("myValue")
media.descriptions.add("myValue")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...