使用隐式返回类型查看以下函数定义:
scala> def getIn(nodes:NodeSeq, path:String) = {
| nodes map {node => node \ path}
| }
getIn: (nodes: scala.xml.NodeSeq, path: String)scala.collection.immutable.Seq[scala.xml.NodeSeq]
但是,如果明确定义了具有相同返回类型的函数,则会发生错误:
scala> def getIn(nodes:NodeSeq, path:String) = Seq[NodeSeq] {
| nodes map {node => node \ path}
| }
<console>:9: error: type mismatch;
found : scala.collection.immutable.Seq[scala.xml.NodeSeq]
required: scala.xml.NodeSeq
nodes map {node => node \ path}
我无法理解错误发生的原因。请帮帮我。
答案 0 :(得分:4)
在第二种情况下,您没有正确定义返回类型。你需要
def getIn(nodes:NodeSeq, path:String) : Seq[NodeSeq] = { ...