例:
var a = Map(1 -> List(7,8,9), 2 -> 15)
变量a的类型为
scala.collection.immutable.Map[Int,Any]
。我想获取
List(7, 8, 9)
的第一个元素。a(1)(0)
给我一个错误:Any does not take parameters
。如何将
Any
转换为List
?请帮忙。
最佳答案
与@EndeNeu相似,但涵盖了空列表的情况,其中为了很好地定义问题,我们假定值为0
,
a.collect {
case (i, Nil) => (i, 0)
case (i, x::_) => (i, x)
case p @ (_, _) => p
}
注意
@
将元组绑定到p
,以便在部分映射中我们不需要复制整个元组。