Scala中的剪辑数量

时间:2012-10-30 19:42:59

标签: scala

给出一个整数x,如果它在某个范围的边界内,我想返回x。如果没有,则返回它违反的边界值。

def keepWithinRange(x:Int, min:Int, max:Int) : Int = {
  if (x < min) return min;
  if (x > max) return max;
  return x;
}

有更优雅的方法吗?

2 个答案:

答案 0 :(得分:9)

我写这个:

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

在Scala中使用return作为控制流更为惯用。

答案 1 :(得分:3)

您可以使用RichInt的max和min方法:

def keepWithinRange(x:Int, minVal:Int, maxVal:Int) = x max minVal min maxVal
相关问题