我正在尝试使用以下 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)