加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 19:30:09 所属栏目:百科 来源:网络整理
导读:我发现了三种在 Ruby中编写相同条件的方法: #1if 1==1 puts "true" end#2puts "true" if 1==1#3if 1==1 then puts "true" end 为什么我不能这样做? #4if 1==1 puts "true" 我不明白: 为什么在#3中需要然后结束,并且, 为什么我需要更改顺序才能让#2工作.
我发现了三种在 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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读