クイックリファレンス

Ruby 2.1 機能チートシート

Ruby 2.1で導入された画期的機能のリファレンス:必須キーワード引数、defがシンボルを返す仕様、有理数・複素数リテラル。

· 公開日

Ruby 2.1 では、必須キーワード引数やメソッド定義(def)がシンボルを返す仕様など、言語に重要な構文の進化がもたらされました。

必須キーワード引数 (Required Keyword Arguments)

デフォルト値を指定しないキーワード引数は必須(省略不可)となります:

# length は必須、char はデフォルト '0'
def pad(number, length:, char: "0")
  number.to_s.rjust(length, char)
end

pad(42, length: 6) # => "000042"
pad(42)            # ArgumentError: missing keyword: :length

メソッド定義がシンボルを返す (def)

Ruby 2.1以降、def はメソッド名をシンボルとして返すため、インラインで修飾子を適用できます:

class User
  # インラインで private に指定
  private def secret_token
    "secret"
  end

  # モジュールデコレータと連携
  memoize def expensive_computation
    sleep 2
    42
  end
end

数値・リテラルの改善

# 有理数リテラルの接尾辞 'r'
2/3r # => (2/3)

# 複素数リテラルの接尾辞 'i'
3 + 4i # => (3+4i)

# 文字列凍結の最適化: 'freeze'
"constant_string".freeze

参考資料

関連テーマ