0
呼び出されるメソッドが "plus"で始まる場合は、class_evalを使用してメソッドをメタプログラムで作成しようとしています。しかし、私はplus10(または任意の数)が呼び出されるとclass_evalメソッドclass_evalの問題Ruby
class Adder
def initialize(my_num)
@my_num = my_num
end
def my_num
@my_num
end
end
def method_missing(meth, *args)
my_meth = meth.to_s
#puts my_meth[0, 4]
if my_meth[0, 4] == "plus" then #/plus\d/ then
num = my_meth.slice(/\d+/).to_i
original_num = self.my_num.to_i
my_sum = original_num + num
class_eval{ eval{"def #{meth}; @my_int = #{my_sum} return @my_int end\n"}}
end
else
super
end
y = Adder.new(12)
puts y.plus10
、新しく作成されたメソッドがコールされてい整数にその番号を追加する必要があり、実際の構文を一緒に入れてトラブルを抱えている、と新しい合計を生成する。
おかげ
本当にありがとうございました! – user1043856