假设我们有这个元组列表:
val data = List(('a', List(1, 0)), ('b', List(1, 1)), ('c', List(0)))
该列表具有以下特征:
List[(Char, List[Int])]
我的任务是从“data”中查找键为“b”的元组内的“List[Int]”元素。如果我实现一个像“findIntList(data,'b')”这样的方法,我希望结果是List(1,1)。我尝试了以下方法:
data.foreach{elem => if(elem._1==char) return elem._2}
data.find(x=>x._1==ch)
for(elem <- data) yield elem match {case (x,y:List[Bit])=>if(x==char) y}
for(x <- data) yield if(x._1==char) x._2
使用所有的方法(除了第一种方法,在那里我使用显式的“return”),我得到的结果都是List[Option]
或List[Any]
,我不知道如何从中提取出“List[Int]
”。
Option(char, List[Bit])
,比如从data.find
得到的,你可以使用.get
获取实际的元组:需要注意的是,如果没有找到任何内容,它会抛出异常。值得一提的是,在这个任务中,我只是编写了自己的函数,因为高阶列表函数只在第五周介绍。 - Mark Peters