Code golf tips of Ruby(4)
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文字使用するので、コードの中で頻出する場合は使用しないほうがいいです。