آموزش دارت: معرفی عملگرهای: ریاضی – منطقی و مقایسه ای

به نام دانای بر حق

مقدمه

در این سری آموزش ها قصد داریم 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 معکوس کردن عدد مثبت را منفی، منفی را مثبت میکند
* ضربدر
/ تقسیم اعشاری
~/ خارج قسمت
% باقی مانده

به مثال های زیر توجه کنید

عملگر های پیشوندی و پسوندی

عملگر Meaning
++var var = var + 1 (افزودن یک واحد var + 1)
var++ var = var + 1 (افزودن یک واحد پیش از عمل is var)
–var var = var – 1 (کم کردن یک واحدvar – 1)
var– var = var – 1 (کم کردن یک واحد پیش از عملیات var)

مثال های زیر توجه کنید:

عملگر های مقایسه ای در دارت

 

Operator Meaning
== برابری
!= نا برابری
> بزرگتر
< کوچکیتر
>= بزرگتر مساوی
<= کوچکتر مساوی

نکته: در صورت نسبت ندادن متغییر ها هر دو برابر هستند یعنی null هستند در صورتی که یکی نست داده شده باشد نابرابر خواهند.

به مثال های زیر توجه کنید:

عملگر های نوع داده در دارت

Operator Meaning
as در نظر گرفتن ( به مثال توجه شود)
is اگر هم نوع باشند
is! اگر هم نوع نباشند

مثال:

در مثال های بالا emp از نوع Person یک بار در مقایسه میشود یک بار در نظر گرفته میشود.

عملگر های نسبت دادن در دارت

مساوی = نسبت دادن عادی می باشد

علامت سوال دوبار مساومی =?? برای نسبت دادن در صورتی که مقدار null بود

به مثال زیر توجه کنید:

نسبت دادن های خلاصه مانند C:

 

= –= /= %= >>= ^=
+= *= ~/= <<= &= |=

توضیح کلی op نوع عملگر:

Compound assignment Equivalent expression
For an operator op: a op= b a = a op b
مثال: a += b a = a + b

عملگر های منطقی در دارت

Operator Meaning
!expr نقیض یا not
|| یای منطقی
&& و منطقی

مثال:

عملگر های بیتی در دارت

Operator Meaning
& و AND
| یا OR
^ یای اختصاصی XOR
~expr not یا نقیض
<< شیفت به چپ
>> شیفت به راست

مثال:

عملگر های شرط تک خطی در دارت

<em>condition</em> ? <em>expr1</em> : <em>expr2</em>

مثل C بخش اول شرط بخش دوم در صورت صحیح بودن اجرا و بخش سوم در صورت عدم صحت اجرا میشود.

<em>expr1</em> ?? <em>expr2</em>

در صورتی که null نباشد

به مثال های زیر توجه کنید:

منظور کامل مشخص است

نماد آبشاری در دارت

نماد آبشاری در دارت با  .. مشخص میشود. آبشارها (..) به شما اجازه می دهند یک دنباله ای از عملیات را روی همان شیء ایجاد کنید. علاوه بر فراخوانی تابع، شما همچنین می توانید به فیلدهای موجود در آن همان شیء دسترسی داشته باشید. این اغلب شما گام ایجاد یک متغیر موقت را ذخیره می کند و به شما اجازه می دهد کد های مایع بیشتر بنویسید.

به مثال زیر توجه کنید:

اولین خط فراخوانی، querySelector () یک شی انتخابگر را باز می کند. کد زیر که از نماد آبشار استفاده می کند بر روی این شی انتخابگر عمل می کند و هر مقدار بعدی که ممکن است بازگردانده شود را نادیده بگیرد.

مثال طولانی بالا به شکل زیر میشود این ویژگی شبیه jQuery هست :

سایر عملگر ها در دارت

این عملگر ها در همه زبان های برنامه نویسی هستند مثل پرانتز ولی برخی تفاوت دارند به جدول زیر توجه کنید:

Operator Name Meaning
() Function application پرانتز برای جدا کردن و صدا زدن توابع هست
[] List access برای دسترسی به خانه های لیست یا همان آرایه
. Member access برای دسترسی به زیر عضو های یک کلاس مثل دلفی یا جاوا اسکریپت
?. Conditional member access برای برگردانند عضو در صورتی که null نباشد

پایان بخش عملگر ها امیدوارم گیج کننده نباشد چون سعی بر این بود کامل باشد تا در مطالعه سورس کد به مشکل نخوریم.

اگر نقدی باشد در خدمتیم بخش بعدی شروط هستند

 

‌A1Gard

اول از همه کوچک ترین عضو مجموعه 4xmen بنده حقیر هستم. در ثانی یک توسعه دهنده هستم زمینه های تخصصی کارم :‌ Delphi, PHP, C++ ,Python, JavaScript, Unity game engine, C#, asm و علاقه مند به لینوکس، RCE ، کریپتوگرافی هستم. تا الان حضرت حق اینا رو به ما داده و هر وقت که بخواد ازمون میگیره دست خودشه. یا حق، با حق، تا حق

More Posts

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *