নিম্নলিখিত কোডের লাইনটিতে দুটি প্রশ্ন চিহ্ন রয়েছে:
final myStringList = prefs.getStringList('my_string_list_key') ?? [];
অর্থ কি?
উত্তর:
??
ডবল প্রশ্ন চিহ্ন অপারেটর মানে হলো "যদি নাল"। উদাহরণস্বরূপ, নিম্নলিখিত প্রকাশটি নিন Take
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';
। যা if-null অপারেটরটি একটি টার্নারি নাল চেকের মতো কেবল সংক্ষিপ্তরূপে পরিণত হয় String a = a == null ? 'hello : a;
।
?
তিন অপারেটর জন্য পিএইচপি একই ভাবে ব্যবহার করা হয়, এবং শর্টকাট পছন্দ পরিবর্তে আছে $a = $b === true ? $b : 'y'
আপনি টাইপ করতে পারেন $a = $b === true ?: 'y'
পরিবর্তে বা $a = $b === true ? 'x' : $b
-$a = $b === true ?? 'x'
ডার্ট কিছু মূল্যবান অপারেটরদের মানগুলির সাথে ডিল করার জন্য প্রস্তাব দেয় যা শূন্য হতে পারে। একটি হ'ল ?? = এসাইনমেন্ট অপারেটর, যা ভেরিয়েবলের জন্য কেবল তখনই একটি মান নির্ধারণ করে যদি সেই চলকটি বর্তমানে শূন্য থাকে:
int a; // The initial value of a is null.
a ??= 3;
print(a); // <-- Prints 3.
a ??= 5;
print(a); // <-- Still prints 3.
আরেকটি নাল-সচেতন অপারেটর কি ?? , যা অভিব্যক্তির মান শূন্য না হওয়া পর্যন্ত তার বাম দিকে অভিব্যক্তি প্রদান করে, এটি ক্ষেত্রে ডানদিকে অভিব্যক্তিটি মূল্যায়ন করে এবং ফেরত দেয়:
print(1 ?? 3); // <-- Prints 1.
print(null ?? 12); // <-- Prints 12.