如何在Ruby中使用条件运算符(?:)?

Ruby中的条件运算符(?:)是如何使用的

例如,这是正确的吗

<%问题=问题大小>20 ? 问题.问题.切片(0,20)+“..”:问题.问题%>

它是三元运算符,其工作原理与C类似(不需要括号)。这是一个类似于:

如果此值为真值?那么,结果是,否则就是

然而,在Ruby中,if也是一个表达式,所以:if a那么b else c end=a?b:c,优先权问题除外。两者都是表达

示例:

放置(如果为1,则为2,否则为3结束)#=>2.
放1?2:3#=>2.
x=如果为1,则为2,否则为3结束
将x#=>2.

请注意,在第一种情况下,括号是必需的(否则Ruby会感到困惑,因为它认为如果1后面有一些额外的垃圾,那么它就是put),但在最后一种情况下,括号不是必需的,因为没有出现上述问题

您可以使用“long if”表单在多行上实现可读性:

question=if question.size>20那么
问题.第(0,20)条+“…”
其他的
问题
终止

发表评论