1. ホーム
  2. ruby

[解決済み] ruby send メソッドに複数のパラメータを渡す

2022-05-17 11:26:56

質問

でオブジェクトを作成し、動的にメソッドを呼び出そうとしています。

Object.const_get(class_name).new.send(method_name,parameters_array)

の場合は正常に動作しています。

Object.const_get(RandomClass).new.send(i_take_arguments,[10.0])

が、引数の数を間違えて投げている 1 に対して 2 は

Object.const_get(RandomClass).new.send(i_take_multiple_arguments,[25.0,26.0])

定義されたランダムクラスは

class RandomClass
def i_am_method_one
    puts "I am method 1"
end
def i_take_arguments(a)
    puts "the argument passed is #{a}"
end
def i_take_multiple_arguments(b,c)
    puts "the arguments passed are #{b} and #{c}"
end
    end

Rubyのメソッドに複数のパラメータを動的に送信する方法について、どなたか教えていただけませんか?

どのように解決するのですか?

send("i_take_multiple_arguments", *[25.0,26.0]) #Where star is the "splat" operator

または

send(:i_take_multiple_arguments, 25.0, 26.0)