るりまサーチ

最速Rubyリファレンスマニュアル検索!
22件ヒット [1-22件を表示] (0.124秒)
トップページ > クエリ:I[x] > クエリ:basic[x] > クエリ:method_missing[x]

別のキーワード

  1. readline basic_quote_characters
  2. readline basic_quote_characters=
  3. readline basic_word_break_characters
  4. readline basic_word_break_characters=
  5. response basic

ライブラリ

クラス

検索結果

BasicObject#method_missing(name, *args) -> object (27219.0)

呼びだされたメソッドが定義されていなかった時、Rubyインタプリタがこのメソッド を呼び出します。

...ー定義の method_missing メソッドの返り値が未定義メソッドの返り値で
あるかのように見えます。

//emlist[例][ruby]{
class Foo
def initialize(data)
@data = data
end
def method_missing(name, lang)
i
f name.to_s =~ /\Afind_(\d+)_in\z/
i
f @data[lan...
...p @data[lang][$1.to_i]
else
raise "#{lang} unknown"
end
else
super
end
end
end

dic = Foo.new({:English => %w(zero one two), :Esperanto => %w(nulo unu du)})
dic.find_2_in :Esperanto #=> "du"
//}

[注意] このメソッドを override する場合は対象...
...のメソッド名に対して
Object#respond_to? が真を返すようにしてください。
そのためには、Object#respond_to_missing? も同様に override する必
要があります。

@see Object#respond_to?, Object#respond_to_missing?...

BasicObject (12018.0)

特殊な用途のために意図的にほとんど何も定義されていないクラスです。 Objectクラスの親にあたります。Ruby 1.9 以降で導入されました。

...=== 性質
Basic
Object クラスは Object クラスからほとんどのメソッドを取り除いたクラスです。

Object クラスは様々な便利なメソッドや Kernel から受け継いだ関数的メソッド
を多数有しています。
これに対して、 BasicObject クラ...
...ります。

例えば、 BasicObject#method_missingを利用して Proxy パターンを実
装する場合にはObject クラスに定義済みのメソッドはプロクシできないという
問題が発生します。このような場合に Object ではなく BasicObject から派生
...
...合にだけ BasicObject から派生してください。

=== 例

//emlist[例][ruby]{
class Proxy < BasicObject
def initialize(target)
@target = target
end

def method_missing(message, *args)
@target.__send__(message, *args)
end
end

proxy = Proxy.new("1")
proxy.to_i #=> 1
//}...