есть такой код:
saveButton.isEnabled = !name.isEmpty
Почему в данном случае нельзя написать так:
saveButton.isEnabled != name.isEmpty
Ведь по логике это получается одно и то же?
есть такой код:
saveButton.isEnabled = !name.isEmpty
Почему в данном случае нельзя написать так:
saveButton.isEnabled != name.isEmpty
Ведь по логике это получается одно и то же?
В первом варианте у вас получается операция “присваивание” противоположного значения.
А во втором операция сравнения “не равно”
Спасибо!
Присваивание противоположного значения ведь можно только в том случае, если оно заранее определено. А если этого не сделано, то сложно сказать, что является противопоположным. И тогда уж точно первое будет одинаково со вторым.
оно у вас определено
оно возвращает Bool
, как и параметр
Унарный оператор !
перед Bool
значением возвращает противоположное значение, поэтому неважно, какое там изначально.
Бинарный оператор !=
возвращает true
, если сравниваемые значения неравны.
Это базовые вопросы, которы все разобраны в документации. Рекомендую прочитать главную страницу этого сайта
Понятно, что это базовые вопросы, но просто прочитать учебник недостаточно, на таких вот примерах понимаешь более глубоко.
В данном случае я как-то упустил из виду, что мы имеем дело именно с булевыми значениями. Тогда, естественно, есть только одно противоположное значение.
Спасибо еще раз!