18

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

基本上像

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

或者我可以做的其他方式

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

2 回答 2

41

如果你将它们放在一个数组中,你可以Array在变量名前写下这样的:

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

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

它基本上就像幕后的提取器一样工作。另请参阅此相关线程:scala zip list to tuple

于 2013-05-27T02:27:25.097 回答
6

您可以尝试模式匹配:

val (x, y) = "15,8".split(",") match {
  case Array(x: String, y: String) => (x.toInt, y.toInt)
  case _ => (0, 0) // default
}
于 2013-05-27T02:22:28.360 回答