如何在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中需要然后结束,并且, 声明#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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |