ScalaZ'de, Option[Validation[E, A]]
'u Validation[E, Option[A]]
'a dönüştürmenin deyimsel yolu nedir? Aşağıdaki varsayımsal kodda ÖrneğinBir Seçeneği Dönüştür [Doğrulama [E, A]] Doğrulama [E, Seçenek [A]]
:
def convert(x: Option[Validation[E, A]]): Validation[E, Option[A]] =
/* ??? */
def validateThing(thing: A): Validation[E, A] =
/* whatever */
def exampleUseCase(maybeThing: Option[Thing]): Validation[E, Option[Thing]] = {
val validated: Option[Validation[E, Thing]] = a.map(validateThing(_))
// ...
val result: Validation[E, Option[Thing]] = convert(validated)
result
}
convert
uygulanması deyimsel ScalaZ ne gibi görünürdü?
Bu dönüşümün bana mantıklı gelmediğini söyleyebilirim. "Belki", "Yok" ise ne sonuç beklerdin? Muhtemelen başarısız doğrulama, hiçbiri, eğer hiç bir şey değilse o zaman değer elde edip “başarılı” bir durum olarak koyabilirsiniz, o zaman “Seçenek” e ihtiyacınız olmaz. – 4lex1v
“validate” ve “validateThing” ifadeleri varsayımsaldır, sadece böyle bir dönüşümün * gerçekleşebileceği yeri göstermektir. Ben sadece dönüştürmenin uygulanmasının ne olacağıyla ilgileniyorum. – kes
Ama belki de 'Bu', 'Yok' olduğunda ne beklemesi gerektiği ile ilgili soruya cevap vermek: 'Hiçbiri'nin başarılı bir şekilde doğrulanması. – kes