simanのブログ

ゆるふわプログラマー。競技プログラミングやってます。Ruby好き

Code golf tips of Ruby(4)

Rubyコードゴルフをやるときに覚えておくと便利です。

joinは*に置き換える

joinメソッドは配列を連結させるときに使用するのですが、これは「*」で置き換えることができます。

puts [1,2,3].join('+')
puts [1,2,3]*'+'
1+2+3
1+2+3

これだけで6文字も短く出来ました。


組み込み変数を使用する

コードゴルフでは「変数の宣言すら長く感じる」ので、用意されている変数を使用することでコードが短くなる場合があります。例えば「$*」はRuby実行時における引数を配列に格納したものですが、これをすでに宣言された配列として扱うことが可能です。


$*の使用例

p $*
ruby golf2.rb hello world
["hello", "world"]


$*を用いてコードを短く

a=[]  # 通常はこのように配列の宣言が必要

a.push(3)
$*.push(3)  # $*は組み込み変数なので宣言なしに使用出来る。

p a
p$* # なぜかくっつけてもまともに動く

このように組み込み変数を使用することで変数宣言の分だけコードが短くなることがわかります。ただ、組み込み変数は変数名に2文字使用するので、コードの中で頻出する場合は使用しないほうがいいです。