7

次のコードでは、for内包表記内で、タプル逆参照を使用して文字列とインデックスを参照できます。

val strings = List("a", "b", "c")
for (stringWithIndex <- strings.zipWithIndex) {
  // Do something with stringWithIndex._1 (string) and stringWithIndex._2 (index)
}

コードの読者が と の値に疑問を抱く必要がないように、Scala 構文で内包ヘッダーstringWithIndexの部分 (文字列とインデックス) に分割する方法はありますか?forstringWithIndex._1stringWithIndex._2

次のことを試しましたが、コンパイルできませんでした。

for (case (string, index) <- strings.zipWithIndex) {
  // Do something with string and index
}
4

2 に答える 2

21

あなたはほとんどそれを手に入れました:

scala> val strings = List("a", "b", "c")
strings: List[java.lang.String] = List(a, b, c)

scala> for ( (string, index) <- strings.zipWithIndex)
       | { println("str: "+string + " idx: "+index) }
str: a idx: 0
str: b idx: 1
str: c idx: 2

ほら、caseキーワードは必要ありません。

于 2011-02-08T13:43:47.840 に答える
7
strings.zipWithIndex.foreach{case(x,y) => println(x,y)}

解像度:

(a,0)
(b,1)
(c,2)
于 2011-02-08T13:44:13.260 に答える