0
この動作はわかりません。値がグリッド(配列)上に作成されたサークル内にあるかどうかをチェックしたいと思います。円の2辺を定義します。スカラの反復子の値とvalのキャッシュされた値
val circleLeft = Vector(5,14,23..)
val circleRight = Vector(5,16,27,..)
私は以下の機能をこの状態でチェックしています。 最初のもの:
def insideCircle(idx: Int): Boolean = {
val l = circleLeft.toIterator
val r = circleRight.toIterator
while (l.hasNext && r.hasNext) {
if(idx < r.next && idx > l.next) return true
}
return false
}
常にtrueを返します。この第二の1
def insideCircle(idx: Int): Boolean = {
val l = circleLeft.toIterator
val r = circleRight.toIterator
while (l.hasNext && r.hasNext) {
val x1 = r.next
val x2 = l.next
println(x2,x1)
if(idx < x1 && idx > x2) return true
}
return false
}
では正常に動作、すなわちinsideCircle(15)、真= insideCircle(17)何かが、ここでは異なるあり
偽= ..?
ので、それAND条件私は、括弧の間に2つの条件を閉じる必要があります作るために?編集: 美しい、ありがとう! – LowFieldTheory
私はあなたの質問を理解していない、 '&&'を呼び出す前に '.next'sの両方を評価する必要があります。 '{println(" left "); false} && {println( "right"); true} 'と' {println( "left"); false}&{println( "right"); true& ''( '&'は短絡法ではありません) –
"&&を呼び出す前に両方の.nextsを評価する必要があります。 – LowFieldTheory