method_oneifが値を返す場合はブレークし、そうでない場合は try と言うにはどうすればよい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_oneifが値を返す場合はブレークし、そうでない場合は try と言うにはどうすればよい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またはを返すことを意味する)にのみの右側を実行し、falseこの式の結果は次のようになります。method_two
if - の使用
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
を使用する必要がありますreturn。breakループ用です。
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_one(board) and return
returnステートメントは、真の値を返す場合にのみ実行されますmethod_one(board)。