在IF块中,我需要检查某个条件是否为真,如果为真,则退出块。
#something like this if 1 == 1 return if some_object && some_object.property puts 'hello' end
字符串我该怎么办?
q9yhzks01#
你不可能像那样从if里逃出来。你可以做的是在上面添加一个子子句:
if
if (cond1) unless (cond2) # ... end end
字符串如果你的逻辑太嵌套了,你需要一种方法来更好地将它展平,也许你想做的是提前计算一个变量,然后只在需要的时候才开始:
will_do_stuff = cond1 will_do_stuff &&= !(some_object && some_object.property) if (will_do_stuff) # ... end
型有很多方法可以避免深度嵌套的结构,而不必break它。
break
0s0u357o2#
小心选择与事物相关的词语。因为Ruby有块,我不确定您是否认为条件语句是块。例如,您不能执行以下操作:
# will NOT work: block = Proc.new { puts "Hello, world." } if true then block
字符串如果你需要一个嵌套的条件,你可以这样做,而不会使事情变得复杂:
if condition_one? if condition_two? # do some stuff end else # do something else end
型
zvokhttg3#
你可以使用一个while循环,而不是if循环,并在任何适合你需要的地方放置断点。
while
while some·condition something·likely break unless some·additional·condition something·less·likely break end
字符串
3条答案
按热度按时间q9yhzks01#
你不可能像那样从
if
里逃出来。你可以做的是在上面添加一个子子句:字符串
如果你的逻辑太嵌套了,你需要一种方法来更好地将它展平,也许你想做的是提前计算一个变量,然后只在需要的时候才开始:
型
有很多方法可以避免深度嵌套的结构,而不必
break
它。0s0u357o2#
小心选择与事物相关的词语。因为Ruby有块,我不确定您是否认为条件语句是块。例如,您不能执行以下操作:
字符串
如果你需要一个嵌套的条件,你可以这样做,而不会使事情变得复杂:
型
zvokhttg3#
你可以使用一个
while
循环,而不是if
循环,并在任何适合你需要的地方放置断点。字符串