我有一个列表,其中两个元素是元组。 如何访问元组的元素?
package prova_package
object prova_worksheet {
println("Welcome to the Scala worksheet") //> Welcome to the Scala worksheet
var l = List((1,'a'),(2,'b'),3,4) //> l : List[Any] = List((1,a), (2,b), 3, 4)
var u = (1,'a') //> u : (Int, Char) = (1,a)
u._1 //> res0: Int = 1
//l(1)._1 //this does not work. Why? How can I access to the value 'b' ?
}
我想要价值' b'
答案 0 :(得分:5)
Scala是一种静态语言。
您的代码不起作用,因为您为元素混合了不同的类型。这就是编译器为列表推断类型List[Any]
的原因。如果列表的类型为List[(Int, Char)]
,那么您的代码可以正常工作。
虽然有一种方法可以解决使用强制转换的问题,但我希望大胆地概述它是不同寻常的:
l(1).asInstanceOf[(Int, Char)]._1
惯用法是使用单形列表,即包含相同类型元素的列表。