2010年10月27日11:09 Ruby 結局、Rubyの特異メソッドって何なの? 今日は 特異メソッド について理解を深めるために書いてみます。説明の中にメソッドが色々出てきてややこしいですが、このルールで使っています。m(_ _)m c_method # クラスメソッド e_method # 特異メソッド i_method # インスタンスメソッド 特異メソッドっていうのは、オブジェクト固有のメソッドです。あるオブジェクトにはあるけど、同じクラスの別のオブジェクトにはそのメソッドは無い、みたいなメソッドですね。 class MyClass; end obj = MyClass.new obj2 = MyClass.new def obj.e_method puts "e_method called" end obj.e_method # e_method called obj2.e_
『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0063 号 バックナンバー Rubyist Magazine 0063 号 Rubyist Magazine 0062 号 Kaigi on Rails 特集号 RubyKaigi Takeout 2020 特集号 Rubyist Magazine 0061 号 Rubyist Magazine 0060 号 RubyKaigi 2019 直前特集号 Rubyist Magazine 0059 号 Rubyist
Ruby におけるインスタンス特異的なメソッド(instance-specific method)のこと。singleton method、singular method などと英訳され呼称されることもあるが、日本語の特異メソッドを含めいずれも一般的ではない、Ruby 独自の用語。デザインパターンの Singleton 関連のメソッドと混同されがちだが両者は(まったく…というわけではないが)あまり関係ない。 Ruby 設計者、まつもと氏による直接の言及はないが、一連の発言から、おそらくは、CLOS の総称関数における EQL スペシャライザ(引数のクラスを指定する代わりに、指定の書式により特定のインスタンスに限定できる)をヒントに Ruby に組み込まれた機能。ただエンドユーザーがイメージする動作モデルとしては、この EQL スペシャライザより SELF などインスタンスベース言語における
こんにちは、鈴木です。 以前のエントリで「includeされた時にクラスメソッドとインスタンスメソッドを同時に追加する頻出パターン」をご紹介しました。 今回は、それに関する定形処理を肩代わりしてくれる ActiveSupport::Concern をご紹介します。 includeされた時にクラスメソッドとインスタンスメソッドを同時に追加するパターン Before 以前のエントリ(includeされた時にクラスメソッドとインスタンスメソッドを同時に追加する頻出パターン)でご紹介していますが、おさらいしましょう。 module M def self.included(base) base.extend(ClassMethods) end module ClassMethods def foo puts 'foo' end end def bar puts 'bar' end end
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く