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

时间:2018-06-28 10:32:32

标签: 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)
                                        ^

1 个答案:

答案 0 :(得分:2)

如果您坚持使用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)