将Array中的值提取到元组中

时间:2013-05-27 02:01:38

标签: scala collections

是否有一种简单的方法可以将列表的值提取到Scala中的元组中?

基本上像

"15,8".split(",").map(_.toInt).mkTuple //(15, 8)

或其他一些我可以做的方式

val (x, y) = "15,8".split(",").map(_.toInt)

2 个答案:

答案 0 :(得分:37)

如果你有一个数组,你可以在变量名前面写Array,如下所示:

val Array(x, y) = "15,8".split(",").map(_.toInt)

如果您有其他集合类型,只需替换为Seq或类似。

它基本上就像幕后的extractor一样。另请参阅此相关主题:scala zip list to tuple

答案 1 :(得分:6)

您可以尝试模式匹配:

val (x, y) = "15,8".split(",") match {
  case Array(x: String, y: String) => (x.toInt, y.toInt)
  case _ => (0, 0) // default
}