如何在Ruby中不使用’then’或’end’来编写’if’

前端之家收集整理的这篇文章主要介绍了如何在Ruby中不使用’then’或’end’来编写’if’前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我发现了三种在 Ruby中编写相同条件的方法
#1
if 1==1 
  puts "true" 
end

#2
puts "true" if 1==1

#3
if 1==1  then puts "true" end

为什么我不能这样做?

#4
if 1==1 puts "true"

我不明白:

>为什么在#3中需要然后结束,并且,
>为什么我需要更改顺序才能让#2工作.

声明#4似乎是最自然的写作方式.我不明白为什么不可能.

解决方法

“if x then y end”语法用于多行条件,而“y if x”形式用于简洁的单行条件语句.然后在第一种情况下告诉Ruby条件结束是必要的(因为Ruby不需要像C这样的parens),并且必须告诉Ruby整个if块已经结束(因为它可以是多行) ).

您可以用分号替换then,因为行尾也表示条件的结束.如果你不能摆脱多线的结局.如果你想要一个简洁的单行,可以使用第二种形式或三元运算符.

例如,假设

x = true

以下将评估为真,并返回y

x ? y :
=> y

同样,这将评估错误并且不返回任何内容

!x ? y :
=>

在else案例的’:’之后添加一个术语

!x ? y : z
=> z

猜你在找的Ruby相关文章