语法错误,意外的keyword_else,期待':' - 红宝石

时间:2016-08-30 10:20:47

标签: ruby

prompt("Welcome to Calculator! Enter your name:")

name = ''
loop do
    name = Kernel.gets().chomp()

    if name.empty()? 
        prompt("Make sure to use a valid name")
    else
        break
    end
end

不确定我在这里失踪了什么。

我得到了这个错误消息:

syntax error, unexpected keyword_else, expecting ':'

2 个答案:

答案 0 :(得分:3)

试试

if name.empty?

请注意,您可以调用没有括号的params方法。否则,您应该name.empty?(),因为?是方法名称的一部分。

无论如何,你的错误是?条件之后的if。错误消息告诉您,使用?它正在尝试处理具有此语法的三元运算符

condition ? expression1 : expression2

因此需要:

答案 1 :(得分:1)

if name.empty()? 

在常规if语句中被解释为三元'if'运算符:

if (name.empty() ? do_somethig : do_something_else )

并且代码中缺少双点

也许你的意思是:

if name.empty? # is equal to
if name.empty?()

因为问号是方法名称的一部分