method_one
ifが値を返す場合はブレークし、そうでない場合は 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_one
ifが値を返す場合はブレークし、そうでない場合は 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)
。