Как проверить, удовлетворяют ли все множественные значения тому или иному условию

#kotlin

#kotlin

Вопрос:

Я хотел бы проверить, являются ли все мои переменные либо нулевым / другим условием, либо не нулевым / другим условием. Если некоторые из них равны нулю, а некоторые нет, я хотел бы вернуть те переменные, которые равны нулю. Например:

 val value1 = null
val value2 = null
val value3 = null
val value4 = "Toast"

if(value1 != null amp;amp; value2 != null amp;amp; value3 != null amp;amp; value4 != null) return true 
else if (????) return value that are null
 

Может быть, я просто ошибаюсь, и решение проще, чем я думаю.

Комментарии:

1. Почему бы вам просто не использовать filter / map?

Ответ №1:

Поместить значения в список и отфильтровать их?

 val mylist = mapOf(value1, value2, value3, value4)
val notnulls = mylist.filter{it != null}
 

Теперь notnulls будут иметь значения, которые не равны null.

Я почти уверен, что там также есть any{…} , так же, как подсчет того, осталось ли что-нибудь после вашего фильтра.

Комментарии:

1. С этим подходом есть одна проблема. Все значения на самом деле являются изменяемыми значениями. Будет ли это по-прежнему работать?

2. Вы изменяете их при выполнении проверки?

3. Нет, во ВРЕМЯ выполнения они не изменяются. Но, конечно, значение MutableLiveData.value можно изменить

4. Не могли бы вы сделать снимок и поработать над этим?

5. Я не знаю, как именно это сделать. Существует функция сопоставления, которая запускается каждый раз, когда изменяется значение. Но между проверяемым значением и считываемыми данными может быть условие гонки