Поведение методов Array bang

Некоторые версии Array методы похожи на компактный! , отклонить! , сплющить! , uniq! вернуть nil , если не было сделано никаких изменений:

[1,[2]].flatten!
# => [1, 2]
[1,2].flatten!
# => nil
[1,[2]].flatten
# => [1, 2]
[1,2].flatten
# => [1, 2]

[1,2,nil].compact!
# => [1, 2]
[1,2].compact!
# => nil
[1,2,nil].compact
# => [1, 2]
[1,2].compact
# => [1, 2]

Если они сделали это таким образом, должна быть причина. Есть идеи, что это может быть?

15
задан sawa 23 October 2014 в 15:53
поделиться