我写了以下代码:
obj = Object.new
def obj.talk
puts "Talk called"
end
if obj.respond_to?(talk)
obj.send(talk)
else
puts "No talk"
end
输出如下:
undefined local variable or method `talk' for main:Object (NameError)
但是当我通过用户输入传递它时,它的工作方式为:
obj = Object.new
def obj.talk
puts "Talk called"
end
request = gets.chomp
if obj.respond_to?(request)
obj.send(request)
else
puts "No talk"
end
从终端输入字符串talk
时输出Talk called
。
谢谢@Amadan,它通过使用方法的符号名称来工作。以下作品。
obj = Object.new;
def obj.talk
puts "Talk called"
end
if obj.respond_to?(:talk)
obj.send(:talk)
else
puts "No talk"
end
谈话称为