一般 method 加上感嘆號(hào)代表這個(gè) method 會(huì)拋異常掂碱。如 save 與 save!。
也有一層意思是,這個(gè) method 會(huì) change object愁茁,代表這個(gè) method 是一個(gè) danger 的 method。如 downcase 與 downcase! 亭病。
另外通過今天的 review鹅很,也糾正自己的一個(gè)錯(cuò)誤:不能因?yàn)橐郧坝羞@樣的寫法,現(xiàn)在就也繼續(xù)按照不太合理的方式這么寫罪帖。
加一段我看到的別人的解釋:
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.