我有两种方法 - 添加和删除 - 我想用用户输入来调用它们。
所以代替这个长代码
def delete; end
def add; end
case gets.chomp
when 'Add'
add
when 'Delete'
delete
end
我正在寻找关键词eval
所做的事情。
eval gets.chomp
这样,如果输入是'add',那么它将执行'add'方法
有什么想法吗? 谢谢!
编辑--- 我是个白痴。 Eval有效。它似乎不起作用,因为我在其他地方有错误。无论如何感谢答案!
答案 0 :(得分:1)
这样的事情:
def a
puts "1"
end
def b
puts "2"
end
while true
eval(gets.chomp)
end
答案 1 :(得分:1)
您可以使用send
按名称调用方法:
send gets.chomp
答案 2 :(得分:0)
如果像这样的软件,你的代码应该可以工作:
def delete; end
def add; end
puts "please chose a method add or delete"
ans = gets.chomp.downcase
case ans
when 'add'
add
when 'delete'
delete
else
puts "nothing selected"
end
答案 3 :(得分:0)
你可以使用“发送”方法,先将你的方法放在一个类中 试试这个:
class Methods
def show
print "show"
end
end
print "Enter your method name: "
methodName = gets.chomp
methodName.to_sym
myMethods = Methods.new
meMethods.send(methodName)
试试吧! 您可以使用这种方式制作新的编程语言或大型程序。