Вы можете использовать listOfNotNull
, например,
val allNonNullValues = listOfNotNull(windows, doors, pipes)
if (allNonNullValues.isNotEmpty()) { // or .isEmpty() depending on what you require
// or instead just iterate over them, e.g.
allNonNullValues.forEach(::println)
Если вам это не нравится, вы также можете использовать all
, none
или any
например ::
if (listOf(windows, doors, pipes).any { it != null }) {
if (!listOf(windows, doors, pipes).all { it == null }) {
if (!listOf(windows, doors, pipes).none { it != null }) {
Для вашего текущего состояния any
-вариант, вероятно, самый хороший. all
и none
однако побеждают, если вы хотите убедиться, что все или ни одна из записей не соответствуют определенным критериям, например all { it != null }
или none { it == null }
.
Или, если ничего из вышеперечисленного вам действительно не подходит, вместо этого предоставьте свою собственную функцию, например ::
fun <T> anyNotNull(vararg elements : T) = elements.any { it != null }
и назовите его следующим образом:
if (anyNotNull(windows, doors, pipes)) {