如何在 ruby 中使用三元组

how do I use the ternary in ruby

我对 ruby 有点陌生,一段时间以来一直在尝试理解三元运算符,但我一直没有理解。

这是我最近一直在试验的代码:

目标:问候一两个人,分别接受一两个人作为论据和问候。

我知道我传递给三元的代码很长,这可能是导致问题的原因?无论如何,非常感谢所有帮助,并在此先感谢您。这是我写的原始代码,然后是我试图转换成三元的代码。原代码没问题,第二个不行。

def greet(person_1, person_2=nil)
    if person_2.nil?
        p "Hey " + person_1
    else
        p "Hey " + person_1 + " and " + person_2
    end
end

greet("Chao")
greet("Chao", "Arittro")

RESULT: "Hey Chao"
RESULT: "Hey Chao and Arittro"


def greet(person_1, person_2=nil)
    person_2.nil? ? p ("Hey " + person_1) : p ("Hey " + person_1 + " and " + person_2)
end

greet("Chao")
greet("Chao", "Arittro")

RESULT: "syntax error, unexpected local variable or method, expecting `do' or '{' or '(')"

问题是 p() 之间的空格。

这应该有效

def greet(person_1, person_2=nil)
    person_2.nil? ? p("Hey " + person_1) : p("Hey " + person_1 + " and " + person_2)
end

因为这只是一个示例,所以很好,但在实际应用程序中使用三元运算符会使代码非常难以理解。大多数人更喜欢您发布的原始实现。