Comments 13
Все-таки жаль, что не внедряют типы по примеру Swift'овского Type!, что дает обнуляемую ссылку, которую не надо каждый раз проверять. Это очень удобно когда значение null не имеет какой-либо семантики, но при этом необнуляемый тип не подходит по той или иной причине.
Я все таки склонен считать такое костылем, если приведете пример, где это действительно оправдано — можем подискутировать с удовольствием. В Swift это было оправдано в первую очередь тем что все строилось на основе библиотек написанных на Objective-C и переписывать их все было бы очень долго и затратно. Тут же такого легаси пытаются избежать — и правильно делают как по мне. Хотя частично похожего поведения как Type! можно добиться через late
А мне синтаксис Swift с записью не null переменной в новую переменную нравится больше:
При этом можно использовать и вариант x = x, чтобы не плодить новых переменных:
Странно почему в Swift это было с первой версии, а в Dart начинают добавлять только сейчас, язык-то достаточно молодой.
if let x = nilX { }
При этом можно использовать и вариант x = x, чтобы не плодить новых переменных:
if let x = x { }
Странно почему в Swift это было с первой версии, а в Dart начинают добавлять только сейчас, язык-то достаточно молодой.
Мне, как iOS-нику со стажем, тоже такой подход кажется очевиднее — без магии. Но почему именно так у них работает я попытался разобраться вот в этом докладе youtu.be/LxMXFhw0-ms
Почему не сделали сразу — наверно потому же, почему в автомобилях ремни безопасности обязали использовать только после 1957-го года (судя по википедии), пришло осознание необходимости видимо ;)
Почему не сделали сразу — наверно потому же, почему в автомобилях ремни безопасности обязали использовать только после 1957-го года (судя по википедии), пришло осознание необходимости видимо ;)
Шел 2020-й год. Авторы Дарта заметили null-safety (или Optional) паттерн в остальных языках программирования. :)
Да держи всю презентацию, мне не жалко ;) docs.google.com/presentation/d/1Mwm42W-vkRySjHMcU7_ZHNUJrMCli_sD0cCFLLoEkrw/edit?usp=sharing
Сейчас еще в самом видео добавлю
Сейчас еще в самом видео добавлю
Суть проблемы как раз в том что это касается всех типов. Вот касательно математики - представьте что у вас в формуле "y=x*2" сам x может быть числом, а может не быть вообще - как это обрабатывать? Математика, как в итоге и языки программирования, пришли к мнению что нужен отдельный "тип" - как раз пустое множество. Нул в правильной обработке в общем похож. Так что проблема не в нул как таковом, а скорее в том как это было реализовано до Null-Safety - вообще не по-математичному (если так фамильярно это можно упростить конечно)
Sign up to leave a comment.
Null safety в Dart