स्कैलाज़ में कनवर्ट करें, Option[Validation[E, A]]
को Validation[E, Option[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
के कार्यान्वयन मुहावरेदार ScalaZ में की तरह लग रहे हैं?
में मदद करेगा, मैं कहूंगा कि यह कनवर्टन मुझे अधिक समझ में नहीं आता है। यदि संभवतः 'शायद टिंग'' कोई नहीं है तो आप क्या परिणाम देंगे? संभवतः असफल सत्यापन, यह कोई नहीं है, अगर यह कोई नहीं है तो आप मूल्य निकाल सकते हैं और 'सफल' मामले के रूप में रख सकते हैं, तो आपको 'विकल्प' की आवश्यकता नहीं है। – 4lex1v
'मान्य' और 'validateThing' hypothetical हैं, बस इस तरह के रूपांतरण * हो सकता है के संदर्भ को दिखाने के लिए। मुझे केवल दिलचस्पी है कि 'कन्वर्ट' का कार्यान्वयन क्या होगा। – kes
लेकिन 'शायद टिंग'' कोई नहीं होने पर क्या उम्मीद की जा सकती है इसके विशिष्ट प्रश्न का उत्तर देने के लिए: 'कोई नहीं' का सफल सत्यापन। – kes