Ben Ayrıştırıcı [java.util.Date]farklı tip
benim yaptığım o iki aşamada, ilk dönmek için combinator ayrıştırıcıları kullanarak verileri ayrıştırmak çalışıyorum başka Ayrıştırıcı oluşturmak için andthen kullanarak Ayrıştırıcı birleştiren
: Ben bir simpleYear ayrıştırıcı kullanarak bir yıl ayrıştırmak, o zaman ben andthen içine bu basit ayrıştırıcı sonucu takmaya çalıştı, ben o zaman bu andthen bir ParseResult [Tarih] çıktısı olarak sahip olmak için bu girişi kullanabilecekNe yazık ki ilanının satırında derleyici aşağıdaki hatayı alıyorum:
/object DateParser extends RegexParsers {
val formatter: SimpleDateFormat = new SimpleDateFormat("yyyy-MM-dd")
def year = """\d{4}""".r
def month: Parser[String] =
def day = """[0-2]\d""".r | """3[01]""".r
def month = """0\d""".r | """1[0-2]""".r
def simpleDate: Parser[String] =
(year ~ "-" ~ month ~ "-" ~ day) ^^
{ case y ~ "-" ~ m ~ "-" ~ d => y + "-" + m + "-" + d }
def date: Parser[Date] = simpleDate andThen {
case Success(s, in) =>
val x: ParseResult[Date] = try {
Success(formatter.parse(s), in)
} catch {
case pe: ParseException => Failure("date format invalid", in)
}
x
case f: Failure => f
}
}
scala derleyici belki denemede bir Ayrıştırıcı [Tarih] (içine bir örtük dönüştürme kendisi tarih türünden yapamaz gibi görünüyor: Burada
type mismatch; found :
parser.DateParser.Input ⇒ parser.DateParser.ParseResult[java.util.Date] (which
expands to)
scala.util.parsing.input.Reader[Char] ⇒ parser.DateParser.ParseResult[java.util. required: parser.DateParser.Parser[java.util.Date]
kodudur yakalamak?)
Yapmak istediklerimi yapmanın başka bir yolu var mı?
sayesinde ve ayrıca tüm diğer ipuçları. Sana Input => ParseResult [Tarih] üzerindeki Ayrıştırıcı yöntemini uygulamak ve bir Ayrıştırıcı [Tarih] geri almak kullanabilirsiniz gelip nasıl merak ediyorum? api'yi kontrol ettim: http://www.scala-lang.org/api/2.10.3/index.html#scala.util.parsing.combinator.Parsers$Parser Ancak, görünür olarak yasal olarak listelenmiyor. It @Simonlbc – Simonlbc
Parsers' http://www.scala-lang.org/api/2.10.3/index 'de bir yöntem.html # scala.util.parsing.combinator.Parsers "Parsers" ı genişleten "RegexParsers" ı genişletiyorsunuz, böylece onu arayabilirsiniz. – Kolmar