169 похожих чатов

Кстати у меня вопрос. Почему не работает проверки типо if

(someProperty != null) {
someProperty.foo; // тут опять надо ставить оператор !
}
Дарт же не поддержтвает многопоточность. Почему он не может гарантировать что в этом месте переменная не изменится?

8 ответов

6 просмотров

Если переменная может меняться (берется из стейта например) то все равно потребует !

я думал что он работает в одном потоке, а многопоточка достигается за счет изолятов

Yurij-horssyyy Автор вопроса
Dart Mitai
я думал что он работает в одном потоке, а многопот...

Ну так и есть. Поэтому вопрос что ему мешает гарантироавть в простых случаях что переменная не изменится. Например нет никаких await. Или что-то еще может прервать волшебным образом выполнение?

потому что это может быть переопределенный геттер, который каждый раз возвращает разное значение.

потому что someProperty это глобальная переменная. Есть вероятность что на момент проверки на null(в if'e) переменная будет не null, а на следующей строке, при обращении к той же переменной, она уже будет null. Поэтому этот трюк с проверкой на null работает только с локальными переменными. Например, можно значение глобальной переменной записать в локальную: final _someProperty = someProperty; if (_someProperty != null) { _someProperty.foo; // будет ок, потому что _someProperty локальная переменная }

Radomir Epur
потому что someProperty это глобальная переменная....

нет, дело не в области видимости, а в возможности переопределить свойство класса

https://dart.dev/tools/non-promotion-reasons

Похожие вопросы

Обсуждают сегодня

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
в сях есть множество как в питоне? для удаление дубликатов
Linus
25
читать файл максимально быстро? странный вопрос))
zamtmn
53
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
How to create an OS in C? what to study?
Linus
18
а как бы вылезти из ИО, что то типа IO -> Ether или в какую сторону смотреть ? что то туплю
Fedor
9
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Всем доброго вечера! Хочу поделиться своим злоключением с человеком, который, как оказалось сюда тоже скидывал свое резюме. Жаль, что я вашу группу не нашел раньше… человек ки...
Роман Ахмедзянов
4
Компания Elif ищет менеджера проектов, который будет заниматься поиском и ведением новых проектов. Прежде чем приступить к работе, вам нужно пройти наш недельный курс, где вы ...
Elif
5
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
11
Карта сайта