Как разработчик Java, читающий документацию Apple по Objective-C 2.0: мне интересно, что означает « отправка сообщения на ноль », не говоря уже о том, насколько это действительно полезно. Взяв отрывок из документации:
В Какао есть несколько шаблонов, которые используют этот факт. Значение, возвращаемое из сообщения в nil, также может быть действительным:
- Если метод возвращает объект, любой тип указателя, любой целочисленный скаляр размера меньше или равный sizeof (void *), float, double, a long double или long long, то сообщение, отправленное в nil, возвращает 0 .
- Если метод возвращает структуру, как определено в Руководстве по вызову функций Mac OS X ABI, которая должна быть возвращена в регистрах, то сообщение, отправленное в nil, возвращает 0,0 для каждого поля в структуре данных. Другие типы данных структуры не будут заполняться нулями.
- Если метод возвращает что-либо, кроме вышеупомянутых типов значений, возвращаемое значение сообщения, отправленного в nil, не определено.
Неужели Java сделала мой мозг неспособным понять приведенное выше объяснение? Или мне не хватает чего-то, что сделало бы это таким же прозрачным, как стекло?
Я понимаю, что такое сообщения / получатели в Objective-C, я просто не понимаю, какой получатель есть nil
.