map
Heroku の log コマンドのソースを読んでいたらちょっとした発見があったのでメモ。
log.rb
def parse_log(log) return unless parsed = log.match(/^(.*\[(\w+)([\d\.]+)?\]:)(.*)?$/) [1, 2, 4].map { |i| parsed[i] } end
map を使っているところなんだけど、自分だったら
return parsed[1], parsed[2], parsed[4]
と書いている、たぶん。
そんな書き方もできるんだと感心。メリットはどんなところだろう。
- return a, b, c よりもカッコいい
- タイプ数が少ない
- 返す要素の数が変更になる、順番が変わるときの変更が楽(変更になることがそう頻繁にあるとは思わないけど)
こんなところ?
逆にデメリットは
- 初心者には分りづらい
とか?
ところで、こういう書き方は一般的なのだろうか?