Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

compact 配列からnilを消す

compactはnilを消した配列を返してくれる関数です。

userName = ["foo", "bar", "foobar", nil]

p userName.compact

=> ["foo", "bar", "foobar"]

これを使うと、ファイル名を作製したい場合に少しだけ幸せになれます。

userName = ["foo", "bar", "foobar", nil]

num = 0
for i in userName do
  puts [i,"#{Time.now.strftime("%y%m%d%H%M%S")}", "#{num}"].join("_") + ".jpg"
  num += 1
end
=> foo_120905130823_0.jpg
=> bar_120905130823_1.jpg
=> foobar_120905130823_2.jpg
=> _120905130823_3.jpg

num = 0
  for i in userName do
  puts [i,"#{Time.now.strftime("%y%m%d%H%M%S")}", "#{num}"].compact.join("_") + ".jpg"
  num += 1
end
=> foo_120905130823_0.jpg
=> bar_120905130823_1.jpg
=> foobar_120905130823_2.jpg
=> 120905130823_3.jpg

このように、nilが格納された場合無視してくれるので、頭にかっこ悪い"_"が入りません。