कोड की निम्नलिखित पंक्ति में दो प्रश्न चिह्न हैं:
final myStringList = prefs.getStringList('my_string_list_key') ?? [];
मातलब क्या है?
जवाबों:
??डबल प्रश्न चिह्न ऑपरेटर का अर्थ है "अगर शून्य"। उदाहरण के लिए, निम्नलिखित अभिव्यक्ति लें।
String a = b ?? 'hello';
इसका मतलब है aबराबरी b, लेकिन अगर bअशक्त है तो aबराबरी 'hello'।
एक अन्य संबंधित ऑपरेटर है ??=। उदाहरण के लिए:
b ??= 'hello';
इसका मतलब है कि यदि bअशक्त है तो इसे बराबर सेट करें hello। अन्यथा, इसे न बदलें।
संदर्भ
शर्तें
डार्ट 1.12 रिहाई खबर सामूहिक रूप से निम्नलिखित के लिए भेजा अशक्त-अवगत ऑपरेटरों :
?? - यदि नल ऑपरेटर??= - अशक्त-असाइनमेंटx?.p - अशक्त-पहुँचx?.m() - अशक्त-विधि विधि मंगलाचरण?पहले से ही टर्नरी ऑपरेटर द्वारा उपयोग किया जा रहा है String a = b == true ? 'x' : 'y';:। अगर इफ-नल ऑपरेटर टर्नरी नल चेक के लिए सिर्फ शॉर्टहैंड की तरह निकलता है String a = a == null ? 'hello : a;।
?का उपयोग टर्नरी ऑपरेटर के लिए PHP में उसी तरह किया जाता है, और $a = $b === true ? $b : 'y'आपके जैसे टाइप कर सकते हैं $a = $b === true ?: 'y'या इसके बजाय शॉर्टकट हैं $a = $b === true ? 'x' : $b-$a = $b === true ?? 'x'