Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 如何使用用户输入调用方法_Ruby - Fatal编程技术网

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

Ruby 如何使用用户输入调用方法,ruby,Ruby,我有两个方法——添加和删除——我想用用户输入调用它们 因此,与其说这是一段很长的代码 def delete; end def add; end case gets.chomp when 'Add' add when 'Delete' delete end 我在寻找与关键字eval类似的东西 eval gets.chomp 这样,如果输入是“add”,那么它将执行“add”方法 有什么想法吗? 谢谢 编辑--- 我是个白痴。评估工作。它似乎不起作用,因

我有两个方法——添加和删除——我想用用户输入调用它们

因此,与其说这是一段很长的代码

def delete; end
def add; end

case gets.chomp
    when 'Add'
      add
    when 'Delete'
      delete
end
我在寻找与关键字
eval
类似的东西

eval gets.chomp
这样,如果输入是“add”,那么它将执行“add”方法

有什么想法吗? 谢谢

编辑--- 我是个白痴。评估工作。它似乎不起作用,因为我在其他地方出错了。不管怎样,谢谢你的回答

类似这样:

def a
    puts "1"
end

def b
    puts "2"
end

while true
    eval(gets.chomp)
end
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

您可以使用以下符号调用方法:


如果您的代码是这样的,那么它应该可以工作:

def a
    puts "1"
end

def b
    puts "2"
end

while true
    eval(gets.chomp)
end
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
您可以使用“send”方法,首先将您的方法放入类中,然后 试试这个:

    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)
试试看!
你可以用这种方法来开发新的编程语言或大型程序。

我特别说过,我不想在最后一行使用像codeI ment这样的case语句myMethods而不是meMethods