在Scala中将Int类型转换为元组标识符?

时间:2017-11-09 11:21:05

标签: scala indexing tuples

是否可以将Int转换为元组标识符(在scala中)?所以对于一个工作的例子,假设我有这个:

   val testTuple = ("Hector", "Jonas", "Javi")
   val id = 2
   println(testTuple._id) // does not work as it tries 'num' as a name parameter

我可以看到元组元素可以通过它们出现的顺序来访问 - 很像索引(第一个值是1而不是0),例如, testTuple._1 // is Hector可以按照其他地方here所述的方式运作。

那怎么办呢?非常感谢

2 个答案:

答案 0 :(得分:1)

您可以使用testTuple.productElement(id - 1)。但请注意,这会返回Any

答案 1 :(得分:0)

不,你不能这样做。 _ntuple<n>的成员,它自动等于元组的大小。根据说明:

  

对于每个TupleN类型,其中1 <= N <= 22,Scala定义了一个   元素访问方法。

例如:

val data = (4,3,2)
val sum = data._1 + data._2 + data._3

有关详细信息,请参阅Scala Tuples

感谢。