scala - Scala 范围内的剪辑编号

标签 scala

给一个整数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

这两种方法都比在 Scala 中使用 return 控制流更符合习惯。

关于scala - Scala 范围内的剪辑编号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13146511/

相关文章:

scala - 如何启动 sbt 控制台并自动计算某些表达式?

scala - 从另一个模板 Play Framework 调用辅助函数

scala - 使用 Gatling 将场景模块化以按顺序运行

java - 在长 Scala 列表或 Stream 上进行 reduce() 操作期间,Java JVM 关于 GC 的智能程度如何?

斯卡拉 : simulate Lotto number generator in Range 1 to 45

class - 通过给定的泛型类型 Scala 获取类的伴随对象

scala - 如何更改功能测试的 Guice 绑定(bind)?

scala - 如何开始一个 Scala akka Actor

scala - 使用 circe 时如何在 Scala 中表示动态 JSON 键

java - 从 Executor 创建 ExecutorService