我在Ruby代码中做错了什么?

时间:2012-09-01 00:15:05

标签: ruby

def pregunta 
    reply = gets.chomp.downcase
    if reply == 'si'
        puts 'Correcto'
    end

    if reply == 'no'
        puts 'Incorrecto'
    end
end

pregunta 'alfkjdasñlfj?'

在我提出一个问题(“pregunta”是英文问题)之后,当我输入答案时,程序应该告诉我是否正确(“correcto”)或错误(“wrongo”)(“si”或“没有”)。我没有得到答案,而是得到了“ArgumentError”。我做错了什么?

我正在使用Ruby 1.9.3-p194

4 个答案:

答案 0 :(得分:2)

pregunta不接受参数,但无论如何都要传递一个参数。我可能错了,但不是你想做的事情:

def pregunta(preg)
    puts preg
    reply = gets.chomp.downcase
    if reply == 'si'
        puts 'Correcto'
    end

    if reply == 'no'
        puts 'Incorrecto'
    end
end

答案 1 :(得分:1)

您没有将值传入函数调用,而是从终端读取它。调用该函数,然后输入您的字符串。

pregunta
si
Correcto
=> nil

答案 2 :(得分:1)

您的方法声明中没有任何参数。

你需要这样的东西:

def pregunta(foo)
   if foo == 'bar'
      true
   end
end

答案 3 :(得分:1)

你打电话给pregunta'alfkjdasñlfj?'但那个方法没有争论。

def pregunta(answer) 
    reply = answer.chomp.downcase
    if reply == 'si'
        puts 'Correcto'
    end

    if reply == 'no'
        puts 'Incorrecto'
    end
end

pregunta gets

也许?