如何将Range.Inclusive转换为NumericRange.Inclusive [Char]类型?

时间:2017-07-18 13:51:05

标签: scala

我想得到:

val s: String ="12ab"

我试过了:

//it is ok
List(('1', '2'), ('a', 'b')).map { case (a, b) => a to b mkString } mkString

// it is invalid
List((1, 2), ('a', 'b')).map{case (a,b)=> a to b mkString } mkString

如何编译第二个示例?

1 个答案:

答案 0 :(得分:2)

问题是在同一个列表中使用IntChar会使其成为List[(AnyVal, AnyVal)]。您可以使用模式匹配来解决问题:

def main(args: Array[String]): Unit = {
  println(List((1, 2), ('a', 'b')).map {
    case (x: Int, y: Int) => x to y mkString
    case (x: Char, y: Char) => x to y mkString
  } mkString)
}

收率:

12ab