به نام دانای بر حق
مقدمه
در این سری آموزش ها قصد داریم syntax زبان برنامه نویسی دارت Dart را با هم یاد بگیریم، برای دنبال کردن سری کلی این آموزش ها و دیدن قست ها اینجا کلیک کنید.
دارت زبان برنامه نویسی flutter می باشد برای نوشتن برنامه های native یعنی با کد محلی برای android و ios هم زمان با طراحی متریالز.
جدول لیست عملگر ها در زبان دارت
توضیحات | عملگر |
---|---|
منحصر پسوندی | expr++ expr– () [] . ?. |
منحصر پیشوندی | -expr !expr ~expr ++expr –expr |
ضرب و تقسیمی | * / % ~/ |
جمع و تفریق | + – |
شیفت | << >> |
و بیتی AND | & |
یای اختصاصی بیتی XOR | ^ |
یای بیتی OR | | |
آزمون بزرگ و کوچکی و … | >= > <= < as is is! |
برابر و نابرابری | == != |
و منطقی | && |
یای منطقی | || |
اگر null نبود | ?? |
شرط تک خطی | expr1 ? expr2 : expr3 |
ابشاری | .. |
نسبت دادن | = *= /= ~/= %= += -= <<= >>= &= ^= |= ??= |
نکته: assert به معنی ادعا کردن برای تشخیص درستی در مثال ها زین پس در دارت میباشد.
عملگر های ریاضی دارت
عملگر | معنی |
---|---|
+ | به علاوه |
– | منهی |
-expr | معکوس کردن عدد مثبت را منفی، منفی را مثبت میکند |
* | ضربدر |
/ | تقسیم اعشاری |
~/ | خارج قسمت |
% | باقی مانده |
به مثال های زیر توجه کنید
assert(2 + 3 == 5); assert(2 - 3 == -1); assert(2 * 3 == 6); assert(5 / 2 == 2.5); // Result is a double assert(5 ~/ 2 == 2); // Result is an int assert(5 % 2 == 1); // Remainder
عملگر های پیشوندی و پسوندی
عملگر | Meaning |
---|---|
++var | var = var + 1 (افزودن یک واحد var + 1) |
var++ | var = var + 1 (افزودن یک واحد پیش از عمل is var) |
–var | var = var – ۱ (کم کردن یک واحدvar – ۱) |
var– | var = var – ۱ (کم کردن یک واحد پیش از عملیات var) |
مثال های زیر توجه کنید:
var a, b; a = 0; b = ++a; // Increment a before b gets its value. assert(a == b); // 1 == 1 a = 0; b = a++; // Increment a AFTER b gets its value. assert(a != b); // 1 != 0 a = 0; b = --a; // Decrement a before b gets its value. assert(a == b); // -1 == -1 a = 0; b = a--; // Decrement a AFTER b gets its value. assert(a != b); // -1 != 0
عملگر های مقایسه ای در دارت
Operator | Meaning |
---|---|
== | برابری |
!= | نا برابری |
> | بزرگتر |
< | کوچکیتر |
>= | بزرگتر مساوی |
<= | کوچکتر مساوی |
نکته: در صورت نسبت ندادن متغییر ها هر دو برابر هستند یعنی null هستند در صورتی که یکی نست داده شده باشد نابرابر خواهند.
به مثال های زیر توجه کنید:
assert(2 == 2); assert(2 != 3); assert(3 > 2); assert(2 < 3); assert(3 >= 3); assert(2 <= 3);
عملگر های نوع داده در دارت
Operator | Meaning |
---|---|
as | در نظر گرفتن ( به مثال توجه شود) |
is | اگر هم نوع باشند |
is! | اگر هم نوع نباشند |
مثال:
if (emp is Person) { // Type check emp.firstName = 'Bob'; } (emp as Person).firstName = 'Bob';
در مثال های بالا emp از نوع Person یک بار در مقایسه میشود یک بار در نظر گرفته میشود.
عملگر های نسبت دادن در دارت
مساوی = نسبت دادن عادی می باشد
علامت سوال دوبار مساومی =?? برای نسبت دادن در صورتی که مقدار null بود
به مثال زیر توجه کنید:
// Assign value to a a = value; // Assign value to b if b is null; otherwise, b stays the same b ??= value;
نسبت دادن های خلاصه مانند C:
= | –= | /= | %= | >>= | ^= |
+= | *= | ~/= | <<= | &= | |= |
توضیح کلی op نوع عملگر:
Compound assignment | Equivalent expression | |
---|---|---|
For an operator op: | a op= b | a = a op b |
مثال: | a += b | a = a + b |
var a = 2; // Assign using = a *= 3; // Assign and multiply: a = a * 3 assert(a == 6);
عملگر های منطقی در دارت
Operator | Meaning |
---|---|
!expr | نقیض یا not |
|| | یای منطقی |
&& | و منطقی |
مثال:
if (!done && (col == 0 || col == 3)) { // ...Do something... }
عملگر های بیتی در دارت
Operator | Meaning |
---|---|
& | و AND |
| | یا OR |
^ | یای اختصاصی XOR |
~expr | not یا نقیض |
<< | شیفت به چپ |
>> | شیفت به راست |
مثال:
final value = 0x22; final bitmask = 0x0f; assert((value & bitmask) == 0x02); // AND assert((value & ~bitmask) == 0x20); // AND NOT assert((value | bitmask) == 0x2f); // OR assert((value ^ bitmask) == 0x2d); // XOR assert((value << 4) == 0x220); // Shift left assert((value >> 4) == 0x02); // Shift right
عملگر های شرط تک خطی در دارت
condition ? expr1 : expr2
مثل C بخش اول شرط بخش دوم در صورت صحیح بودن اجرا و بخش سوم در صورت عدم صحت اجرا میشود.
expr1 ?? expr2
در صورتی که null نباشد
به مثال های زیر توجه کنید:
var visibility = isPublic ? 'public' : 'private'; String playerName(String name) => name ?? 'Guest'; // Slightly longer version uses ?: operator. String playerName(String name) => name != null ? name : 'Guest'; // Very long version uses if-else statement. String playerName(String name) { if (name != null) { return name; } else { return 'Guest'; } }
منظور کامل مشخص است
نماد آبشاری در دارت
نماد آبشاری در دارت با .. مشخص میشود. آبشارها (..) به شما اجازه می دهند یک دنباله ای از عملیات را روی همان شیء ایجاد کنید. علاوه بر فراخوانی تابع، شما همچنین می توانید به فیلدهای موجود در آن همان شیء دسترسی داشته باشید. این اغلب شما گام ایجاد یک متغیر موقت را ذخیره می کند و به شما اجازه می دهد کد های مایع بیشتر بنویسید.
به مثال زیر توجه کنید:
querySelector('#confirm') // Get an object. ..text = 'Confirm' // Use its members. ..classes.add('important') ..onClick.listen((e) => window.alert('Confirmed!'));
اولین خط فراخوانی، querySelector () یک شی انتخابگر را باز می کند. کد زیر که از نماد آبشار استفاده می کند بر روی این شی انتخابگر عمل می کند و هر مقدار بعدی که ممکن است بازگردانده شود را نادیده بگیرد.
مثال طولانی بالا به شکل زیر میشود این ویژگی شبیه jQuery هست :
var button = querySelector('#confirm'); button.text = 'Confirm'; button.classes.add('important'); button.onClick.listen((e) => window.alert('Confirmed!'));
سایر عملگر ها در دارت
این عملگر ها در همه زبان های برنامه نویسی هستند مثل پرانتز ولی برخی تفاوت دارند به جدول زیر توجه کنید:
Operator | Name | Meaning |
---|---|---|
() | Function application | پرانتز برای جدا کردن و صدا زدن توابع هست |
[] | List access | برای دسترسی به خانه های لیست یا همان آرایه |
. | Member access | برای دسترسی به زیر عضو های یک کلاس مثل دلفی یا جاوا اسکریپت |
?. | Conditional member access | برای برگردانند عضو در صورتی که null نباشد |
پایان بخش عملگر ها امیدوارم گیج کننده نباشد چون سعی بر این بود کامل باشد تا در مطالعه سورس کد به مشکل نخوریم.
اگر نقدی باشد در خدمتیم بخش بعدی شروط هستند
دیدگاهتان را بنویسید لغو پاسخ