如何在 Scala 列表中将每个整数转换为其绝对值?



我正在尝试使用以下 Scala 语句将每个列表整数转换为其绝对值,我收到无效的类型匹配错误:

def f(arr:List[Int]):List[Int] = arr.map((x: Int) => if(x<0) -1*x)


Solution.scala:2: error: type mismatch;
found   : List[AnyVal]
required: List[Int]
def f(arr:List[Int]):List[Int] = arr.map((x: Int) => if(x<0) -1*x)
^

如果你坚持用if-else来做,那么你需要if-else表达式的两个部分:

def f(arr:List[Int]):List[Int] = arr.map((x: Int) => if(x < 0) -x else x)

不过,使用abs会更容易:

arr.map(_.abs)

最新更新