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

2番目のケースでは、リターンタイプを正しく定義していません。あなたが必要です

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