अशक्त सहानुभूति लगभग अनुवाद करती है return x, unless it is null, in which case return y
मुझे अक्सर जरूरत होती है return null if x is null, otherwise return x.y
मैं उपयोग कर सकता हूं return x == null ? null : x.y;
बुरा नहीं है, लेकिन null
बीच में हमेशा मुझे परेशान करता है - यह बहुत ही अच्छा लगता है। मैं कुछ पसंद करता हूँ return x :: x.y;
, जहाँ निम्न प्रकार ::
का मूल्यांकन किया जाता है यदि केवल वही है जो पहले नहीं है null
।
मैं इसे लगभग अशक्त सहसंरचना के विपरीत देखता हूं , जो एक स्वर के साथ मिश्रित है, इनलाइन null-check है, लेकिन मैं [ लगभग ] निश्चित हूं कि C # में ऐसा कोई ऑपरेटर नहीं है।
क्या ऐसी अन्य भाषाएं हैं जिनके पास ऐसा कोई ऑपरेटर है? यदि हां, तो इसे क्या कहा जाता है?
(मुझे पता है कि मैं इसके लिए C # में एक विधि लिख सकता हूं; मैं उपयोग करता हूं return NullOrValue.of(x, () => x.y);
, लेकिन अगर आपके पास कुछ बेहतर है, तो मैं इसे भी देखना चाहता हूं।)
return x ? x.y : NULL
। पॉली प्रकार को बुलियन में परिवर्तित करने के लिए याय!