エントリーの編集
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
エントリーの編集は全ユーザーに共通の機能です。
必ずガイドラインを一読の上ご利用ください。
注目コメント算出アルゴリズムの一部にLINEヤフー株式会社の「建設的コメント順位付けモデルAPI」を使用しています
Rubyで既存メソッドを拡張したい。拡張性も持たせたい。そんな時のやり方メモ。 例として Array#to_sの... Rubyで既存メソッドを拡張したい。拡張性も持たせたい。そんな時のやり方メモ。 例として Array#to_sの拡張をする。 継承クラスでのメソッドオーバーライド Arrayの継承クラスとsuperを使う。Arrayが使われている他の部分を壊さないので安全。 Array#to_sのように、本来なら引数を取らないメソッドを引数ありでオーバーライドする場合は、super()と明示的に引数なしで呼ぶ必要がある。 class OreArray < Array def to_s(args) if args == :hello "extend!!!" else super() end end end a = OreArray.new([1,2,3]) p a.to_s #=> "[1, 2, 3]" p a.to_s(:hello) #=> "extend!!!" class Array alias_