Я думаю, что соглашение для ?
-суффикса состоит в том, чтобы использовать его при именовании метода, который возвращает логическое значение.Это не специальный символ, но он используется для облегчения понимания имени метода, или, по крайней мере, я думаю, что это было намерением.Он должен прояснить, что метод подобен задаче вопроса: он не должен ничего менять, только возвращать какой-то статус ...
Существует также суффикс !
, который, я думаю, по соглашению означает, чтометод может иметь побочные эффекты или может изменять объект, к которому он вызывается (вместо того, чтобы возвращать измененную копию).В любом случае, !
должен заставить вас тщательно подумать о вызове такого метода и убедиться, что вы понимаете, что делает этот метод.
Я не думаю, что обеспечивает выполнение этих соглашений(Я никогда не пытался их сломать), поэтому, конечно, вы могли бы ужасно злоупотреблять ими, но ваши коллеги-разработчики не были бы рады работать с вашим кодом.
для unless
см. Здесь: http://railstips.org/blog/archives/2008/12/01/unless-the-abused-ruby-conditional/