Array#reject!
回報nil
的情況下,該塊計算爲false
對於接收機中的每一個元素(這是在地方改變,在這種情況下不發生變化),相較於Array#reject
:當沒有變化時`Array#reject!`返回`nil`的目的是什麼?
a=1,2,3
a.reject {false} # => [1, 2, 3]
a.reject! {false} # => nil
這在我看來,相當奇怪。爲什麼Array#reject!
被設計爲這樣做?在這種情況下,Array#reject!
應該像Array#reject
一樣嗎?
我希望能夠鏈接方法,如select!
,reject!
和map!
。有沒有辦法做到這一點?
_delete to #delete_if,從自身刪除塊的計算結果爲true的元素,但如果沒有更改,則返回nil。 – 2013-03-13 02:39:55
@MichaelBerkowski當然它確實如此,我不問**如果它確實**,我問**爲什麼** – 2013-03-13 02:47:10
@Drukagagar因爲它是這樣設計的。試圖猜測/證明理性通常不是建設性的。也許ML上有一篇關於*設計選擇*的舊文章。無論如何,它不是「破碎」的。 – 2013-03-13 02:47:43