это ничего не меняет. Задача языков программирования — давать удобные средства решения частых проблем программистов. Задача «представить отсутствующее значение» встречается слишком часто чтобы писать для этого Option<T>, поэтому современные языки добавляют специальный синтаксис T? и удобные способы обработки отсутствующих значений.
А что если option<T> и T? это одно и тоже? Как например в swift. Одно другому не мешает ведь.
Синтаксис на основании частоты - немного странная вещь. 1. Как периодически вспоминают в Твиттере, лаконичность safe call'ов приводит к его не самому адекватному использованию (все вызовы просто делаются nullable вместо того, чтобы раньше обработать null) 2. Листы по ощущениям встречаются не реже, однако условный ["1", "12", "35"]*.toInt() до Котлина не дошёл. Но насколько хорошо в других языках справляется T? вместо Option<T> не могу оценить, помню его наличие в Цейлоне, но он немного мёртвый, да и там union type были.
Обсуждают сегодня