我编写了以下代码:
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 called 输入字符串时 talk
Talk called
talk
感谢@Amadan,它通过使用方法的符号名来工作。后续工作。
obj = Object.new; def obj.talk puts "Talk called" end if obj.respond_to?(:talk) obj.send(:talk) else puts "No talk" end
通话