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 に答える