将Array中的值提取到元组中

Ube*_*use 16 collections scala

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

基本上就像是

"15,8".split(",").map(_.toInt).mkTuple //(15, 8)
Run Code Online (Sandbox Code Playgroud)

或者我可以做的其他方式

val (x, y) = "15,8".split(",").map(_.toInt)
Run Code Online (Sandbox Code Playgroud)

Jen*_*olm 37

如果你在数组中有它们,你可以Array在变量名前写,如下所示:

val Array(x, y) = "15,8".split(",").map(_.toInt)
Run Code Online (Sandbox Code Playgroud)

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

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


roc*_*000 6

你可以试试模式匹配:

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