#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. Я не знаю, как именно это сделать. Существует функция сопоставления, которая запускается каждый раз, когда изменяется значение. Но между проверяемым значением и считываемыми данными может быть условие гонки