„Druga konwencja jest taka, że każda metoda, której nazwa kończy się wykrzyknikiem należy stosować z ostrożnością. (...) Często metody, które kończą się wykrzyknikiem są mutatory, które zmieniają stan wewnętrzny obiekt, ale nie zawsze tak jest, istnieje wiele mutacji, które nie kończą się wykrzyknikiem i liczbą nieututujących mutacji metod (takich jak Array.fill
), które nie mają niezmutującego wariantu, zazwyczaj nie mają wykrzyknik (sic). "
(Ruby Programming Language, Flanagan & Matsumoto, strona 180)
Książka kontynuuje przykład exit
kontra exit!
(zarówno nonmutating;. exit!
omijając wszystkie haki at_exit)
jestem z Mauricio- - po prostu nie jest to zaskakujące; ty strzelasz. To, że struktura jest aktualizowana, jest niejawne. –