2017-10-21 31 views

답변

5

self을 정의하지 않았습니다. 그것을 정의하면 효과가 있습니다.

trait Parsers[ParseError, Parser[+_]] { self => 

    def or[A](s1: Parser[A], s2: Parser[A]): Parser[A] 

    case class ParserOps[A](p: Parser[A]) { 
    def |[B>:A](p2: Parser[B]): Parser[B] = self.or(p,p2) 
    def or[B>:A](p2: => Parser[B]): Parser[B] = self.or(p,p2) 
    } 

} 
+0

추가로이 기능에 대한 관련 문서 링크 (https://docs.scala-lang.org/tour/self-types.html) –