Информация об изменениях

Сообщение Re[11]: Какие у исключений проблемы? от 06.11.2014 14:51

Изменено 06.11.2014 14:54 dimgel

Здравствуйте, enji, Вы писали:

D>>Пожалуйста: doSmth(userOption.get). Здесь get может вылетить NoSuchElementException.


E>ну ок, и в чем разница с user.doSmth()? Или здесь doSmth — это именно внешний метод, и надо гарантировать непопадание туда null?


doSmth — внешний метод. Будь он методом User, тогда надо было бы писать так: userOption.map(_.doSmth()).

E>т.е. зачем нам доп сущность Option[User]?


Чтобы на уровне системы типов (т.е. на этапе компиляции) отличать nullable от not null и бить по рукам программиста, когда он пытается заюзать nullable как not null.
Re[11]: Какие у исключений проблемы?
Здравствуйте, enji, Вы писали:

D>>Пожалуйста: doSmth(userOption.get). Здесь get может вылетить NoSuchElementException.


E>ну ок, и в чем разница с user.doSmth()? Или здесь doSmth — это именно внешний метод, и надо гарантировать непопадание туда null?


doSmth — внешний метод. Будь он методом User, тогда надо было бы писать так: userOption.map(_.doSmth()).

UPD. Вернее, для безбожного разыменования по аналогии с doSmth(userOption.get), так: userOption.get.doSmth().

E>т.е. зачем нам доп сущность Option[User]?


Чтобы на уровне системы типов (т.е. на этапе компиляции) отличать nullable от not null и бить по рукам программиста, когда он пытается заюзать nullable как not null.