Ruby использует определенные соглашения об именах для методов. Это позволяет вам быстро определить побочные эффекты, которые они могут иметь, или тип возврата.
В этих соглашениях используются специальные маркеры, такие как "! " и "? " в конце имен методов. Это необычно, так как большинство языков программирования, как правило, запрещают такие символы в идентификаторах, но, тем не менее, это действительно часть имени метода. (и не следует путать с операторами)
- Постфиксное исправление "? " означает, что метод возвращает логическое значение. Это удобный способ заменить префикс «есть». (эта конвенция существует и в диалектах Лиспа)
- Постфиксное исправление "! " означает, что метод изменит экземпляр и, следовательно, не будет действовать / возвращать копию.
Обратите внимание, что это просто условности. Вы никоим образом не должны следовать , но это считается хорошей практикой.