3

今Scalaを学んでいますが、forループですべての要素を出力する関数にタプルを渡そうとしています。これは私がこれまでに行ったことですが、明らかに何かがうまくいかなかった。

object Tuple_demo {
    def main(args: Array[String])
    {
      var tup1=(10,"test",6.8)
      printMe(tup1)
    }
    def printMe(tup1:Tuple1)
    {
      for (ob<-tup1)
      {
        println(ob)
      }
    }
}
4

1 に答える 1

12

すべてのScalaタプルはProductを拡張します。これを使用しproductIteratorて、タプルアイテムを反復処理できます。

scala> (10,"test",6.8).productIterator.foreach(println)
10
test
6.8

関数の型宣言printMeが正しくありません。これは、アイテムのタイプが指定された3項タプルである必要がありますtup1: Tuple3[Int, String, Double]。また、Scalaにはタプル型宣言用の砂糖があるので、以下も正しいでしょうtup1: (Int, String, Double)

于 2012-12-19T19:10:01.090 に答える