integerを指定します。ある範囲の境界内にある場合x
は返したいと思います。x
そうでない場合は、違反している境界の値を返します。
def keepWithinRange(x:Int, min:Int, max:Int) : Int = {
if (x < min) return min;
if (x > max) return max;
return x;
}
これを行うよりエレガントな方法はありますか?
integerを指定します。ある範囲の境界内にある場合x
は返したいと思います。x
そうでない場合は、違反している境界の値を返します。
def keepWithinRange(x:Int, min:Int, max:Int) : Int = {
if (x < min) return min;
if (x > max) return max;
return x;
}
これを行うよりエレガントな方法はありますか?
私はこれを書きます:
def keepWithinRange(x: Int, min: Int, max: Int) = math.max(min, math.min(max, x))
またはこれ:
def keepWithinRange(x: Int, min: Int, max: Int) =
if (x < min) min else if (x > max) max else x
return
どちらも、Scala の制御フローに使用するよりも慣用的です。
RichInt の max メソッドと min メソッドを使用できます。
def keepWithinRange(x:Int, minVal:Int, maxVal:Int) = x max minVal min maxVal