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