Как разработчик Java, который читает документацию Apple Objective-C 2.0: Интересно, что «отправка сообщения нильскому» означает - не говоря уже о том, как это действительно полезно. Взяв выдержку из документации:Отправка сообщения nil в Objective-C
В Какао есть несколько узоров , которые используют этот факт. Значение вернулись из сообщения на ноль также может быть действительным:
- Если метод возвращает объект, любой типа указателя, любое целое число, скалярное размера меньше или равного SizeOf (недействительный *), поплавок, двойной, длинный двойной или долго долго, то сообщение, отправленное на ноль возвращает 0.
- Если метод возвращает-структуру, как это определено в Mac OS X ABI Функц.справ вызовов быть возвращается в регистрах, затем сообщение, отправленное в нуль , возвращает 0.0 для каждого поля в структура данных. Другие данные структуры не будут заполнены нулями.
- Если метод возвращает что-либо иное, кроме вышеупомянутого значения , то возвращаемое значение сообщения , отправленное в nil, не определено.
Имеет Java оказанные мой мозг не способен grokking объяснение выше? Или есть что-то, что мне не хватает, что бы это было ясно, как стекло?
Я получаю идею сообщений/приемников в Objective-C, я просто путаюсь о приемнике, который, как представляется, nil
.
У меня также был фона Java, и я был в ужасе от этой приятной функции в начале, но теперь я нахожу ее абсолютно ЛЮБИМЧИВОЙ !; – 2011-08-23 22:18:50
Спасибо, это отличный вопрос. Вы видели, чтобы увидеть преимущества этого? Это поражает меня как «не ошибку, особенность». Я продолжаю получать ошибки, когда Java просто ударит меня с исключением, поэтому я знал, где проблема.Я не рад обменять исключение нулевого указателя, чтобы сохранить строку или два тривиального кода здесь и там. – 2012-09-18 17:43:20