るりまサーチ

最速Rubyリファレンスマニュアル検索!
99件ヒット [1-99件を表示] (0.453秒)
トップページ > クエリ:_builtin[x] > ライブラリ:ビルトイン[x] > クエリ:E[x] > クエリ:define_method[x]

別のキーワード

  1. _builtin new
  2. _builtin inspect
  3. _builtin []
  4. _builtin to_s
  5. _builtin each

クラス

オブジェクト

キーワード

検索結果

Module#define_method(name) { ... } -> Symbol (32210.0)

インスタンスメソッド name を定義します。

...name を定義します。

ブロックを与えた場合、定義したメソッドの実行時にブロックが
レシーバクラスのインスタンスの上で BasicObject#instance_eval されます。

@param name メソッド名を String または Symbol を指定します。

@param meth...
...od Proc、Method あるいは UnboundMethod の
いずれかのインスタンスを指定します。

@return メソッド名を表す Symbol を返します。

@raise TypeError method に同じクラス、サブクラス、モジュール以外のメソッ
ドを指定し...
...た場合に発生します。

//emlist[例][ruby]{
class Foo
def foo() p :foo end
define_method
(:bar, instance_method(:foo))
e
nd
Foo.new.bar # => :foo
//}...

Module#define_method(name, method) -> Symbol (32210.0)

インスタンスメソッド name を定義します。

...name を定義します。

ブロックを与えた場合、定義したメソッドの実行時にブロックが
レシーバクラスのインスタンスの上で BasicObject#instance_eval されます。

@param name メソッド名を String または Symbol を指定します。

@param meth...
...od Proc、Method あるいは UnboundMethod の
いずれかのインスタンスを指定します。

@return メソッド名を表す Symbol を返します。

@raise TypeError method に同じクラス、サブクラス、モジュール以外のメソッ
ドを指定し...
...た場合に発生します。

//emlist[例][ruby]{
class Foo
def foo() p :foo end
define_method
(:bar, instance_method(:foo))
e
nd
Foo.new.bar # => :foo
//}...

main.define_method(name) { ... } -> Symbol (32210.0)

インスタンスメソッド name を Object に定義します。

...ド name を Object に定義します。

ブロックを与えた場合、定義したメソッドの実行時にブロックが
Object インスタンスの上で BasicObject#instance_eval されます。

@param name String または Symbol を指定します。

@param method Proc、Method あ...
...Method の
いずれかのインスタンスを指定します。

@return メソッド名を表す Symbol を返します。

@raise TypeError method に同じクラス、サブクラス以外のメソッドを指定し
た場合に発生します。


@see Module#def...
...ine_method...

main.define_method(name, method) -> Symbol (32210.0)

インスタンスメソッド name を Object に定義します。

...ド name を Object に定義します。

ブロックを与えた場合、定義したメソッドの実行時にブロックが
Object インスタンスの上で BasicObject#instance_eval されます。

@param name String または Symbol を指定します。

@param method Proc、Method あ...
...Method の
いずれかのインスタンスを指定します。

@return メソッド名を表す Symbol を返します。

@raise TypeError method に同じクラス、サブクラス以外のメソッドを指定し
た場合に発生します。


@see Module#def...
...ine_method...

Method#parameters -> [object] (17108.0)

Method オブジェクトの引数の情報を返します。

...Method オブジェクトの引数の情報を返します。

Method オブジェクトが引数を取らなければ空の配列を返します。引数を取る場合は、配列の配列を返し、
各配列の要素は引数の種類に応じた以下のような Symbol と、仮引数の名...
...

: :req
必須の引数
: :opt
デフォルト値が指定されたオプショナルな引数
: :rest
* で指定された残りすべての引数
: :keyreq
必須のキーワード引数
: :key
デフォルト値が指定されたオプショナルなキーワード引数
: :keyrest
**...
...emlist[例][ruby]{
m = Class.new{define_method(:m){|x, y=42, *other, k_x:, k_y: 42, **k_other, &b|}}.instance_method(:m)
m.parameters #=> x], [:opt, :y], [:rest, :other], [:keyreq, :k_x], [:key, :k_y], [:keyrest, :k_other], [:block, :b
File.method(:symlink).parameters #=> req
//}

@see Proc#paramete...

絞り込み条件を変える

Module#class_exec(*args) {|*vars| ... } -> object (14108.0)

与えられたブロックを指定された args を引数としてモジュールのコンテキストで評価します。

...ュールのコンテキストで評価します。

モジュールのコンテキストで評価するとは、実行中そのモジュールが self になるということです。
つまり、そのモジュールの定義式の中にあるかのように実行されます。

ローカル変...
...します。


//emlist[例][ruby]{
class Thing
e
nd
c = 1

Thing.class_exec{
def hello()
"Hello there!"
e
nd

define_method
(:foo) do # ローカル変数がブロックの外側を参照している
c
e
nd
}

t = Thing.new
p t.hello() #=> "Hello there!"
p t.foo()...
...#=> 1
//}

@see Module#module_eval, Module#class_eval...

Module#method_added(name) -> () (14108.0)

メソッド name が追加された時にインタプリタがこのメソッドを呼び出します。

...ド name が追加された時にインタプリタがこのメソッドを呼び出します。

特異メソッドの追加に対するフックには
BasicObject#singleton_method_added
を使います。

@param name 追加されたメソッドの名前が Symbol で渡されます。

//emlist[...
...例][ruby]{
class Foo
def Foo.method_added(name)
puts "method \"#{name}\" was added"
e
nd

def foo
e
nd
define_method
:bar, instance_method(:foo)
e
nd

# => method "foo" was added
# method "bar" was added
//}...

Module#module_exec(*args) {|*vars| ... } -> object (14108.0)

与えられたブロックを指定された args を引数としてモジュールのコンテキストで評価します。

...ュールのコンテキストで評価します。

モジュールのコンテキストで評価するとは、実行中そのモジュールが self になるということです。
つまり、そのモジュールの定義式の中にあるかのように実行されます。

ローカル変...
...します。


//emlist[例][ruby]{
class Thing
e
nd
c = 1

Thing.class_exec{
def hello()
"Hello there!"
e
nd

define_method
(:foo) do # ローカル変数がブロックの外側を参照している
c
e
nd
}

t = Thing.new
p t.hello() #=> "Hello there!"
p t.foo()...
...#=> 1
//}

@see Module#module_eval, Module#class_eval...

Proc#lambda? -> bool (8038.0)

手続きオブジェクトの引数の取扱が厳密であるならば true を返します。

...らば true を返します。


引数の取扱の厳密さの意味は以下の例を参考にしてください。

//emlist[例][ruby]{
# lambda で生成した Proc オブジェクトでは true
lambda{}.lambda? # => true
# proc で生成した Proc オブジェクトでは false
proc{}.lambda...
...? # => false
# Proc.new で生成した Proc オブジェクトでは false
Proc.new{}.lambda? # => false

# 以下、lambda?が偽である場合
# 余分な引数を無視する
proc{|a,b| [a,b]}.call(1,2,3) # => [1,2]
# 足りない引数には nil が渡される
proc{|a,b| [a,b]}.call(1) # =>...
...ArgumentError となる

# &が付いた仮引数で生成される Proc は lambda? が偽となる
def n(&b) b.lambda? end
n {} # => false

# &が付いた実引数によるものは、lambda?が元の Procオブジェクトから
# 引き継がれる
lambda(&lambda {}).lambda? #=> true
proc(&...