Jako programista Java, który czyta dokumentację Apple Objective-C 2.0: zastanawiam się, co oznacza „ wysłanie wiadomości do zera ” - nie mówiąc już o tym, jak jest to w rzeczywistości przydatne. Wyciąg z dokumentacji:
Jest kilka wzorów w kakao, które wykorzystują ten fakt. Wartość zwrócona z wiadomości do nil może być również poprawna:
- Jeśli metoda zwraca obiekt, dowolny typ wskaźnika, dowolny skalar całkowity o rozmiarze mniejszym lub równym sizeof (void *), float, a double, a long double lub long long, to wiadomość wysłana do zera zwraca 0 .
- Jeśli metoda zwraca strukturę, zgodnie z definicją zawartą w przewodniku wywołań funkcji ABI systemu Mac OS X, która ma zostać zwrócona w rejestrach, wówczas komunikat wysłany do zera zwraca wartość 0,0 dla każdego pola w strukturze danych. Inne typy danych struktur nie będą wypełnione zerami.
- Jeśli metoda zwraca cokolwiek innego niż wymienione powyżej typy wartości, wartość zwracana wiadomości wysłanej do nil jest niezdefiniowana.
Czy Java sprawiła, że mój mózg nie był w stanie zrozumieć powyższego wyjaśnienia? A może jest coś, czego mi brakuje, co sprawiłoby, że byłby tak przejrzysty jak szkło?
Rozumiem wiadomości / odbiorniki w Objective-C, jestem po prostu zdezorientowany co do odbiornika, który tak się składa nil
.