Czy to możliwe, aby w jakiś sposób Marshall funkcja częściowa (załóżmy, to zawsze zawiera tylko jeden przypadek) do czegoś czytelny dla człowieka?Scala Pattern Matching dość drukowane
Załóżmy, że mamy kolekcję typu Dowolny (komunikaty: Lista [Any]) i numer PartialFuntion [Any, T] zdefiniowany za pomocą bloku dopasowywania wzorców.
case object R1
case object R2
case object R3
val pm1: PartialFunction[Any, Any] = {
case "foo" => R1
}
val pm2: PartialFunction[Any, Any] = {
case x: Int if x > 10 => R2
}
val pm3: PartialFunction[Any, Any] = {
case x: Boolean => R3
}
val messages: List[Any] = List("foo", 20)
val functions = List(pm1, pm2)
wtedy możemy znaleźć wszystkie wiadomości pasujące świadczonych PFS i aplikacji powiązanych
val found: List[Option[Any]] = functions map { f =>
messages.find(f.isDefined).map(f)
}
ale co jeśli ja potrzeba wynikająca mapę „czego można oczekiwać” do „co mam” w czytelny dla człowieka formularz (do logowania). Powiedz,
Czy to możliwe? Niektóre makro/meta działa?
Neat pomysł. W ogóle muszę powiedzieć coś więcej ... Oczywiście, alternatywą są inne efekty uboczne. –