0

请参阅以下具有隐式返回类型的函数定义:

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}

我无法理解为什么会发生错误。请帮我。

4

1 回答 1

4

在第二种情况下,您没有正确定义返回类型。你需要

def getIn(nodes:NodeSeq, path:String) : Seq[NodeSeq] = { ...
于 2013-02-26T09:36:33.770 回答