😺

【Ruby 3.4 Advent Calender】【21日目】

2024/12/21に公開

Ruby 3.4 Advent Calender 21日目の記事です。

これはなに

今年 2024年12月25日にリリースされる予定の Ruby 3.4 の新機能や変更点などを1つずつ紹介していく Advent Calender になります。
基本的には NEWS に載っている機能を紹介すると思うんですがここにない機能についても書くかもしれません。
また、記事を書いてる時点ではまだ Ruby 3.4 はリリースされる前なので Ruby 3.4 がリリースされた時点で機能が変わっている 可能性があるかもしれないので注意してください。
記事のまとめは ここを参照 してください。

パフォーマンスに影響があるメソッドを再定義すると警告が出る

Ruby 3.4 ではパフォーマンスに影響がある次のメソッドを再定義すると警告が出力されるようになりました。

  • Integer : #+, #-, #*, #/, #%, #<, #>, #<=, #>=
  • Float : #+, #-, #*, #/, #<, #>, #<=, #>=
  • String : #freeze, #size, #length, #empty?, #+, #succ, #%, #-@
  • Array : #size, #length, #empty?, #hash
  • Hash : #size, #length, #empty?, #[], #[]=
Warning[:performance] = true

# warning: Redefining 'String#freeze' disables interpreter and JIT optimizations
class String
  def freeze
    super
  end
end

この警告は -W -W:performance が有効なときのみ出力されます。

関連

GitHubで編集を提案

Discussion