패턴 일치에 사용할 unapply
메서드를 만들려고했지만 Option
과 다른 값을 반환하려고했지만 Eclipse에서 오류로 표시합니다. unapply
은 Option[T]
을 반환해야한다는 규칙입니까?적용 취소가 항상 옵션을 반환한다는 규칙입니까?
편집 : 다음은 사용하려는 코드입니다. unapply
부울
import java.util.regex._
object NumberMatcher {
def apply(x:String):Boolean = {
val pat = Pattern.compile("\\d+")
val matcher = pat.matcher(x)
return matcher.find
}
def unapply(x:String):Boolean = {
val pat = Pattern.compile("\\d+")
val matcher = pat.matcher(x)
return matcher.find
}
}
object x {
def main(args : Array[String]) : Unit = {
val strings = List("geo12","neo493","leo")
for(val str <- strings) {
str match {
case NumberMatcher(group) => println(group)
case _ => println ("no")
}
}
}
}
이클립스 wrong number of arguments for object NumberMatcher
을 말한다 반환하도록 나는 이전 섹션의 코드를 전환했다. 왜 그런가요?
당신은 제가 적용 취소의 순서를 수정해야합니다 걸 보여줄 수 그 작동시킬 부울을 반환합니까? – Geo
부울을 반환 할 때 인수를 추출 할 수 없습니다. 그것은 단지'case NumberMatcher() => ...'입니다. – Dario
Option [Unit]이 작동하지 않는다는 것에 놀랐습니다. –