دارت - عملگرها
هر عبارت اجرایی در دارت شامل عملگرها و عملوندها ست.
- عملوندها: نشان دهنده ی داده هستند
- عملگرها: چگونگی ترکیب عملوند ها برای ایجاد مقادیر را مشخص می کنند
به این عبارت توجه کنید «۲+۳». در این عبارت ۲ و ۳ عملوند و سمبل + عملگر است.
عملگرهایی که در دارت وجود دارند از این قرارند:
- عملگرهای حسابی
- عملگرهای رابطه ای
- عملگرهای تعیین نوع
- عملگرهای بیتی
- عملگرهای انتساب
- عملگرهای منطقی
- عملگرهای شرطی
عملگرهای حسابی
جدول زیر عملگرهای حسابی در دارت را نشان می دهد:
عملگر | معنی |
---|---|
+ | جمع |
- | تفریق |
* | ضرب |
/ | تقسیم |
٪ | باقیمانده تقسیم |
++ | افزایش |
-- | کاهش |
عملگرهای رابطه ای
عملگرهای رابطه ای، رابطه ی بین دو موجودیت را تعریف می کنند. این عملگرها مقداری بولین(true/false) برگشت می دهند.
لیست این عملگرها را می توانید در جدول زیر ببینید:
عملگر | معنی |
---|---|
> | بزرگتر از |
< | کوچکتر از |
>= | بزرگتر یا مساوی |
<= | کوچکتر یا مساوی |
== | تساوی |
!= | ناتساوی |
عملگرهای تعیین نوع
از این عملگرها برای مشخص کردن نوع در زمان اجرا(runtime) استفاده می شود. اگر این تعریف گنگ است، اجازه دهید به گونه ای دیگر به این موضوع بپردازیم. فرض کنید مقدار متغیر x برابر ۵ باشد و مقدار متغیر y برابر ۵.۰ دراین صورت اگر این دو متغیر را با هم مقایسه کنیم، نتیجه چه خواهد بود؟
x == y
خروجی :
true
اما اگر این مقایسه با عملگر is انجام شود، نتیچه چه خواهد بود؟
x is y
خروجی :
false
عملگر is علاوه بر مقدار، نوع متغیرها را با هم مقایسه می کند. اگر متغیر x مقدار مساوی با متغیر y داشته باشد و این دو متغیر از یک نوع (مثلا int) باشند، آنگاه مقدار true برگشت داده می شود.
جدول مربوط به این عملگرها:
عملگر | معنی |
---|---|
is | اگر دو متغیر مقدار و نوع یکسان داشته باشند، Trueبرگشت داده می شود |
is! | برعکس بالایی(به ندرت استفاده می شود) |
عملگرهای بیتی
مانند سایر زبانهای برنامهنویسی، عملگرهای بیتی بر روی بیتها عمل میکنند. در جدول زیر میتوانید لیست این عملگرها و معنی آنها را ببینید:
عملگر | معنی |
---|---|
& | اگر هر دو بیت یک باشند، مقدار یک برگشت داده می شود |
| | اگر یکی از بیتها یک باشد،مقدار یک برگشت داده می شود |
^ | اگر **فقط** یکی از بیت ها یک باشد، مقدار یک برگشت داده می شود |
~ | مقدار بیت را اصطلاحا invert می کند |
<< | شیفت به چپ |
>> | شیفت به راست |
عملگرهای انتساب
در جدول زیر می توانید لیستی از عملگرهای انتساب را ببینید:
عملگر | معنی |
---|---|
= | انتساب ساده |
??= | انتساب درصورتی که مقدار متغیر null باشد |
+= | انتساب جمع |
-= | انتساب تفریق |
*= | انتساب ضرب |
/= | انتساب تقسیم |
نکته: همین منطق را می توان برای عملگرهای بیتی نیز پیاده سازی کرد.
<<=, >>=, |=, ^= , . . .
در عملگرهای انتساب شاید تنها عملگری که برای اولین بار آن را دیدهباشید، عملگر =?? می باشد که اتفاقا عملگر بسیار مفیدی است. بقیه عملگرها مشابه عملگرهای سایر زبانهاست.
عملگرهای منطقی
عملگرهای منطقی دو یا چند شرط را بررسی میکنند و یکی از مقادیر true یا false را برگشت می دهند. در جدول زیر می توانید این عملگرها را مشاهده نمایید.
عملگر | معنی |
---|---|
&& | اگر هردو trueباشند، مقدار true برگشت داده می شود |
|| | اگر یکی true باشد، مقدار true برگشت داده می شود |
! | معکوس عبارت را برمی گرداند |
عملگرهای شرطی
condition ? expr1 : expr2
این دقیقا همان ساختاری است که در سی پلاس پلاس هم وجود دارد و به نام عملگر سه گانه شناخته می شود. اگر شرط condition برقرار باشد، مقدار expr1 برگشت داده می شود در غیر اینصورت مقدار expr2
عملگر شرطی بعدی بسیار جالب است.
expr1 ?? expr2
اگر مقدار عملوند expr1 نال(null) نباشد، expr1 و در غیراینصورت expr2 برگشت داده می شود.
دو مثال از عملگرهای شرطی همه چیز را روشن می کند
void main() {
var a = 10;
var res = a > 12 ? "greater than 10":"lesser than or equal to 10";
}
خروجی :
lesser than or equal to 10
مثال بعدی:
void main()
{
var a = null;
var b = 12;
var res = a ?? b;
print(res);
}
خروجی:
12