【发布时间】:2013-05-21 20:32:00
【问题描述】:
有没有一种简单的方法可以将列表的值提取到 Scala 中的元组中?
基本上是这样的
"15,8".split(",").map(_.toInt).mkTuple //(15, 8)
或者我可以做的其他方式
val (x, y) = "15,8".split(",").map(_.toInt)
【问题讨论】:
标签: scala collections
有没有一种简单的方法可以将列表的值提取到 Scala 中的元组中?
基本上是这样的
"15,8".split(",").map(_.toInt).mkTuple //(15, 8)
或者我可以做的其他方式
val (x, y) = "15,8".split(",").map(_.toInt)
【问题讨论】:
标签: scala collections
如果您将它们放在数组中,您可以在变量名前写上Array,如下所示:
val Array(x, y) = "15,8".split(",").map(_.toInt)
如果您有其他集合类型,只需替换为 Seq 或类似名称。
它基本上就像幕后的extractor 一样工作。另请参阅此相关线程:scala zip list to tuple
【讨论】:
tuple 结果而不创建两个变量x 和y? (我真的很喜欢内联解决方案)
您可以尝试模式匹配:
val (x, y) = "15,8".split(",") match {
case Array(x: String, y: String) => (x.toInt, y.toInt)
case _ => (0, 0) // default
}
【讨论】:
case _ => (0, 0) 部分确实暗示了原始提问者根本没有询问的内容。