如何使用用户输入调用方法

时间:2014-09-22 23:38:07

标签: ruby

我有两种方法 - 添加和删除 - 我想用用户输入来调用它们。

所以代替这个长代码

def delete; end
def add; end

case gets.chomp
    when 'Add'
      add
    when 'Delete'
      delete
end

我正在寻找关键词eval所做的事情。

eval gets.chomp

这样,如果输入是'add',那么它将执行'add'方法

有什么想法吗? 谢谢!

编辑--- 我是个白痴。 Eval有效。它似乎不起作用,因为我在其他地方有错误。无论如何感谢答案!

4 个答案:

答案 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)

试试吧! 您可以使用这种方式制作新的编程语言或大型程序。