我怎么说如果method_one
返回一个值,然后中断,否则尝试method_two
?
def ai_second_move(board)
p "2nd move called"
# TODO - how to say if method_one gives me a value, break, else method_two
method_one(board)
method_two(board)
end
我怎么说如果method_one
返回一个值,然后中断,否则尝试method_two
?
def ai_second_move(board)
p "2nd move called"
# TODO - how to say if method_one gives me a value, break, else method_two
method_one(board)
method_two(board)
end
大多数 Ruby 的写法是:
method_one(board) || method_two(board)
||
Ruby仅在左侧评估为 false(意味着它返回nil
or )时才执行右侧false
,然后此表达式的结果将是method_two
你需要使用return
. break
是for循环。
def ai_second_move(board)
p "2nd move called"
return if !!method_one(board)
method_two(board)
end
另一种有趣的方式是
def ai_second_move(board)
p "2nd move called"
!!method_one(board) || method_two(board)
end
使用如果 -
method_two(board) if method_one(board).nil?
使用除非 -
method_two(board) unless !method_one(board).nil?
使用三元 -
# This evaluates if (method_one(board) returns nil) condition. If its true then next statement is method_two(board) else return is executed next.
method_one(board).nil? ? method_two(board) : return
这也可以:
method_one(board) and return
return
仅当method_one(board)
返回真值时才执行该语句。