一般 method 加上感叹号代表这个 method 会抛异常。如 save 与 save!。
也有一层意思是,这个 method 会 change object,代表这个 method 是一个 danger 的 method。如 downcase 与 downcase! 。
另外通过今天的 review,也纠正自己的一个错误:不能因为以前有这样的写法,现在就也继续按照不太合理的方式这么写。
加一段我看到的别人的解释:
Methods ending in ! perform some permanent or potentially dangerous change; for example:
Enumerable#sort returns a sorted version of the object while Enumerable#sort! sorts it in place.
In Rails, ActiveRecord::Base#save returns false if saving failed, while ActiveRecord::Base#save! raises an exception.
Kernel::exit causes a script to exit, while Kernel::exit! does so immediately, bypassing any exit handlers.
网友评论