あなたは問題を考えすぎています。
%w
通常の配列定義を記述するよりも簡単な場合、または視覚的に明確な場合に使用します。
どちらを選択するかはプログラマーの選択であり、多くの場合、次のような質問に行き着きます: どちらが保守しやすいでしょうか?
単一の単語を定義するときは、次を使用する方がはるかに理にかなっています%w
。
ary = %w[a b c foo bar]
使用するよりも:
ary = ['a', 'b', 'c', 'foo', 'bar']
ただし、スペースが埋め込まれている場合は、通常の配列定義を使用する方が読みやすくなります。
ary = ['a b c', 'foo bar']
に比べ:
ary = %w[a\ b\ c foo\ bar]
コードレビュー中にチームに伝えているように、コードを書いているときにコードを見て、それを解読するために脳が行う作業を観察してください。フローが簡単で、コードの管理が容易な方を使用してください。一度書きますが、何度もメンテナンスされる可能性がありますので、フォローしてくださる方が使いやすいようにしてください。
配列定義の作成時間にまったく違いはありません。どちらも、Ruby がコードの解釈を開始するときに解析されます。差があったとしても、ベンチマークで測定できず、1 回だけ発生する場合、スクリプトの実行時間にどのような差が生じるでしょうか?