请按照以下代码。
import scala.collection.immutable.HashMap
def myFunc(map : HashMap[Char,List[MyObject]], text : List[Char]) : List[MyObject] = {
text.flatMap(ch => map.get(ch)) //Gives compilation error
text.map(ch => map.get(ch)).flatten //gives compilation error
text.flatMap(ch => map.get(ch)).flatten //This works
}
我不明白为什么前两种方法不起作用?
修改
我得到前两行的错误
Expression List[List[MyObject]] doesn't confirm to expected type list List[MyObject]
答案 0 :(得分:3)
我认为这里的混淆是HashMap.get()
功能。 get函数返回Option[List[MyObject]]
。这就是为什么当你展平它时(如第3个例子),它会删除选项。