配列をソートしてユニークするのに、.uniq.sort
と .sort.uniq
どっちが良いのか。
長いものには巻かれようと思ったものの、破壊的に実行すると、.uniq!.sort!
は実行出来ないケースがある事が判明 @2.7.1
test.rb
r = {
's' => [5,1,3,53,2],
't' => [5,3,4,4,3,2],
}
r.each_key{|k|
#r[k].sort!.uniq!
r[k].uniq!.sort!
# => ダメ
}
p r
$ ruby test.rb
Traceback (most recent call last):
2: from hoge2.rb:5:in `<main>'
1: from hoge2.rb:5:in `each_key'
test.rb:7:in `block in <main>': undefined method `sort!' for nil:NilClass (NoMethodError)
.sort!.uniq!
では実行出来る。
普通に、
test2.rb
a = [5,3,4,4,3,2]
#a.sort!.uniq!
a.uniq!.sort!
p a
な場合はエラーになんない。
ベンチが遅かろうと、.sort.uniq
の方を使うかな1
-
こっちの方が、シェルで馴染み深いし。 ↩