List 在scala中是否有一种非不变的方式将元组更改为列表?

List 在scala中是否有一种非不变的方式将元组更改为列表?,list,scala,tuples,List,Scala,Tuples,在scala中,我想访问元组的特定索引,而不使用tuple.\u indexform 所以我想出了一个主意,在将元组更改为列表之后,然后访问列表的索引。然而,由于我的项目不允许不可变函数,我不知道如何更改它。如何实现代码?或者有更好的方法访问元组的特定索引吗?注意:避免这种用法 您可以使用这种方式,但您将丢失不是良好做法的类型 (1,2,3,4,5).productIterator.toList 或者你可以 (1,2,3,4,5).productIterator.map[Int](e =>

在scala中,我想访问元组的特定索引,而不使用
tuple.\u index
form


所以我想出了一个主意,在将元组更改为列表之后,然后访问列表的索引。然而,由于我的项目不允许不可变函数,我不知道如何更改它。如何实现代码?或者有更好的方法访问元组的特定索引吗?

注意:避免这种用法

您可以使用这种方式,但您将丢失不是良好做法的类型

(1,2,3,4,5).productIterator.toList
或者你可以

(1,2,3,4,5).productIterator.map[Int](e => e.asInstanceOf[Int]).toList

或者您可以在@texasbruce comment中流动(“第一”、“第二”)。productElement(0)“因为我的项目不允许不可变函数”不确定您的意思是什么?另外,如果您希望通过索引访问元素,并且希望所有元素都是相同的类型,那么首先为什么要使用元组呢?
.map(e=>e.asInstanceOf[Int])。toList
.asInstanceOf[Iterator[Int]]非常相似。toList
toList.asInstanceOf[List[Int]]
@DmytroMitin是的。我的意思是,
asInstanceOf
在运行时不起任何作用,它只是告诉编译器相信类型与编写的一样。因此,在
.map(e=>e.asInstanceOf[Int])
中,您基本上在运行时使用identity函数进行映射,这不是很有效。虽然在Scala 2中元组的长度不能超过22,但这不会产生重大影响。@DmytroMitin是的,您是对的。所以我提到-这不是一个好的做法,即使我从来没有想过使用它。