scala如何访问列表中元组中的元素

时间:2014-05-18 12:58:54

标签: list scala

我有一个列表,其中两个元素是元组。 如何访问元组的元素?

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'

1 个答案:

答案 0 :(得分:5)

Scala是一种静态语言

您的代码不起作用,因为您为元素混合了不同的类型。这就是编译器为列表推断类型List[Any]的原因。如果列表的类型为List[(Int, Char)],那么您的代码可以正常工作。

虽然有一种方法可以解决使用强制转换的问题,但我希望大胆地概述它是不同寻常的:

l(1).asInstanceOf[(Int, Char)]._1

惯用法是使用单形列表,即包含相同类型元素的列表。