public_send(name, *args) -> object
[permalink][rdoc][edit]public_send(name, *args) { .... } -> object
-
オブジェクトの public メソッド name を args を引数にして呼び出し、メソッドの実行結果を返します。
ブロック付きで呼ばれたときはブロックもそのまま引き渡します。
1.public_send(:+, 2) # => 3
- [PARAM] name:
- 文字列かSymbol で指定するメソッド名です。
- [PARAM] args:
- 呼び出すメソッドに渡す引数です。
- [EXCEPTION] ArgumentError:
- name を指定しなかった場合に発生します。
- [EXCEPTION] NoMethodError:
- protected メソッドや private メソッドに対して実行した場合に発生します。
1.public_send(:puts, "hello") # => NoMethodError
[SEE_ALSO] BasicObject#__send__, Object#send