Rubyスタイルガイドを読む: コレクション(Array、Hash、Setなど)

こんにちは、hachi8833です。Rubyスタイルガイドを読むシリーズの「コレクション」編は配列やハッシュのスタイルや利用法を扱います。 Rubyスタイルガイドを読む: 総もくじ 前回: Rubyスタイルガイドを読む: 例外処理 次回: Rubyスタイルガイドを読む: 数値、文字列、日時(日付・時刻・時間) コレクション 参照: bbatsov/ruby-style-guide 7-01【統一】配列やハッシュの作成は[]や{}によるリテラル表記が望ましい Prefer literal array and hash creation notation (unless you need to pass parameters to their constructors, that is). Array#newやHash.newによる作成は、コンストラクタにパラメータを渡す必要がある場合のみとします。タイプ量が少ないという点も含めて、リテラル表記に揃えるスタイルにしたということですね。 # 不可 arr = Array.new hash = Hash.new # 良好 arr = [] hash = {} 7-02【統一】配列のリテラル表記で語の配列が必要な場合は%wが望ましい Prefer %w to the literal array syntax when you need an array of words (non-empty strings without spaces and special characters in them). Apply this rule only to arrays with two or more elements. スペースや特殊文字を含まない限りは%wが推奨されます。 # 不可 STATES = [‘draft’, ‘open’, ‘closed’] # 良好 STATES = %w[draft open closed] ただし要素が1つしかない場合はこの限りではありません。 STATES = %w[draft] # これは冗長 STATES = [‘draft’] # これはOK 要素が1つしかない場合に%wを使うと語のリストではないものに見えてしまいそうですし、タイプ量的にもメリットがないからと思われます。 参考: %のリテラル表記の囲みは1種類ではない Rubyでは、%wや%iといったリテラル表記の囲みに[ ]以外も使えます。開始記号と終了記号が一貫していればよいので、以下のような書き方もできます。 %w[draft open closed] %w(draft open closed) %w|draft open closed| %w<draft open closed> 実際のコードでは( )を使うことも多いようです。プロジェクトで統一しておけばよいでしょう。 Rubyリファレンスマニュアル: %記法 7-03【統一】配列のリテラル表記でシンボルの配列が必要な場合は%iが望ましい Prefer %i to the literal array syntax when you need an array of symbols (and you don’t need to maintain Ruby 1.9 compatibility). Apply this rule only to arrays with two or more elements. %iはRuby 1.9以前では利用できないので、後方互換性の必要なコードはこの限りではありません。 # 不可 STATES = [:draft, :open, :closed] # 良好 STATES = %i[draft open … Continue reading Rubyスタイルガイドを読む: コレクション(Array、Hash、Setなど)