我正在尝试转换这样的东西:
if condition?
expression1 line 1
expression1 line 2
expression1 line 3
else
expression2 line 1
end
对于三元,我问题是:如何在一行中将多行放入一个表达式?2是否像java中那样用分号分隔?3像这样?
condition? expression1 line 1; expression1 line 2; expression1 line 3 : expression2
4条答案
按热度按时间raogr8fs1#
ubby3x7f2#
您可以在多行上表示三元:
是的,你需要在多个表达式中使用分号(括号也无妨)。
Please don't do this, per rubocop style.坚持使用单行或
if
块。hs1ihplo3#
您应该将表达式括在括号中:
你应该记住,这会降低代码的可读性。你可能最好使用
if
/else
语句来提高可读性。当我回顾我的ruby
代码时,我喜欢使用community style guide。正如它在介绍段落中所说的:本Ruby风格指南推荐了一些最佳实践,以便真实的Ruby程序员能够编写出可由其他真实的Ruby程序员维护的代码。
希望这对你有帮助
2jcobegt4#
三元运算符需要一个指令块。这意味着您可以使用括号将指令分组
或者在开始/结束块中。
没有简单明了的方法来获得结果,这一事实应该告诉您三元运算符并不是真正为多个语句设计的。)
在这种情况下不要尝试使用它。使用标准if/else。