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