कोड की निम्नलिखित पंक्ति में दो प्रश्न चिह्न हैं:
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'