3
爲什麼Ruby的Fixnum
類中的power!
方法用感嘆號命名?按照慣例,名稱以!結尾的方法有潛在危險(例如,他們可能會以某種方式修改實例)。Fixnum的力量!方法潛在危險?
我可以欣賞gsub
和gsub!
在String
之間的區別,但是怎麼回事power!
?它似乎沒有修改Fixnum
實例或執行任何其他「危險」操作;它只是返回結果。
爲什麼Ruby的Fixnum
類中的power!
方法用感嘆號命名?按照慣例,名稱以!結尾的方法有潛在危險(例如,他們可能會以某種方式修改實例)。Fixnum的力量!方法潛在危險?
我可以欣賞gsub
和gsub!
在String
之間的區別,但是怎麼回事power!
?它似乎沒有修改Fixnum
實例或執行任何其他「危險」操作;它只是返回結果。
這只是API的不一致。沒有什麼可擔心的,沿着:)
!
是just a convention爲破壞性的方法,而不是一個規則。
Bang方法意味着危險,不一定需要修改。請參閱http://stackoverflow.com/questions/709229/difference-between-downcase-and-downcase-in-ruby(我將在解決此問題後刪除downvote) – 2009-12-29 11:21:35
Ruby網站(ruby-lang.org)鏈接到一個教程,具體說明爆炸方法修改接收器:http://rubylearning.com/satishtalim/writing_own_ruby_methods.html。 「在原地修改對象並以感嘆號結尾的Ruby方法被稱爲爆炸方法。」所以......誰是對的? – Jeff 2009-12-29 19:08:37
哎。然而,它後來說:「通常對於內置類,通常危險(雖然不總是)意味着這種方法不同於其非爆炸等價物,永久修改它的接收器。」如果你對這個問題提供了一個空白的編輯(我不能撤銷我的downvote,否則我會扭轉我的downvote) – 2009-12-30 05:25:02