Re[3]: Еще по Nullable/Optional
От: NeoCode  
Дата: 25.12.14 06:40
Оценка:
Здравствуйте, vsb, Вы писали:

NC>>Также, если объект держал какие-то ресурсы, и вдруг "случайно" стал none, ресурсы остались неосвобожденными и пропали? В общем фигня получается.

vsb>Этот момент я не очень понял. Чем это отличается от указателя, который держал какие то ресурсы и стал null? Что вообще значит случайно?

Например, у нас есть класс. Ну, скажем, для представления картинки. Там есть ширина, высота, информация о формате картинки и указатель на память с пикселами. Допустим, информация о формате — это перечисление enum Fmt { UNDEFINED, MONOCHROME, GRAYSCALE, TRUECOLOR }; допустим, глупый программист решил использовать значение UNDEFINED как признак того что объект картинки невалиден, то есть равен None.
Допустим, он загрузил картинку из файла. Объект владеет ресурсом — памятью с пикселами. Затем он случайно поставил значение формата в UNDEFINED.
Если язык поддерживает "интрузивную нуллабельность" — то такой объект моментально станет равным None, несмотря на то что там внутри неосвобожденный ресурс. Вот что я имел в виду.
(я не знаю языков с поддержкой такого на языковом уровне, возможно поэтому их и нет что это может привести к таким казусам)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.