سلام درود خدمت همراهان همیشگی سایت پی وی لرن . با آموزش زبان برنامه نویسی #F همراهتون هستیم. در هر نوع زبان برنامه نویسی منظور از operation، عملیاتی است که به منظور اصلاح مقدار متغیر موجود یا ایجاد مقداری جدید با ترکیب مقدارهای جاری، روی مقدار معینی انجام می شود. بنابراین، operation با استفاده از حداقل یک نشانه که در عملیات اپراتور یا عملگر نامیده می شود و یک مقدار که در عملیات operand یا عملوند گفته می شود امکان پذیر است. با این توضیحات در این بخش از آموزش به سراغ اپراتورها در #F رفته و در پایان اولویت اپراتورها در #F رو خواهیم داشت.
اپراتور یک نماد است که کامپایلر را به انجام اصلاحات ریاضی یا منطقی خاص ترغیب می کند. #F غنی از اپراتورهای تعبیه شده است و انواع مختلفی از اپراتورها را فراهم می کند .
Unary operator (عملگر یگانی)، عملگری است که عملیات خود را روی تنها یک عملوند انجام می دهد. چنانچه، عملگری عملیات مورد نیاز را روی دو عملوند انجام دهد، binary operand (عملگر دوگانی) اطلاق می گردد.
اپراتورهای ریاضی
اپراتورهای مقایسه
اپراتورهای بولین
اپراتورهای بیتی
اپراتورهای ریاضی
جدول زیر تمام اپراتورهای محاسباتی که توسط زبان F # پشتیبانی می شوند را نشان می دهد. فرض کنید متغیر A دارای ۱۰ و در متغیر B 20 نگه داشته شود .
اپراتور | توضیحات | مثال |
---|---|---|
+ | دو عملگر را به هم اضافه می کند | A + Bخواهد شد ۳۰ |
– | عملگر دوم را از اول کم می کند | A – B خواهد شد -۱۰ |
* | دو عملگر را در هم ضرب می کند | A * B خواهد شد ۲۰۰ |
/ | تقسیم در عملگر | B / A خواهد شد ۲ |
% | برای محاسبه باقیمانده تقسیم به کار می رود | B % A خواهد شد ۰ |
** | برای انجام عملیات به توان رساندن (Exponentiation) استفاده میشود | B**A خواهد شد ۲۰۱۰ |
در ادامه مبحث اپراتورها در #F به عملگرهای مقایسه ای می پردازیم.
تمام اپراتورهای مقایسه ای پشتیبانی شده توسط زبان #F را جدول زیر نشان می دهد. این اپراتورهای مقایسه ای دوگانی برای انواع integral و نقطه شناور در دسترس هستند. این اپراتورها مقدار type bool را باز می گرداند.
فرض کنید متغیر A دارای مقدار ۱۰ و متغیر B دارای مقدار ۲۰ است.
اپراتور | توضیحات | مثال |
---|---|---|
= | چک کنید اگر مقادیر دو عملگر برابر یا نباشد .اگر بله، وضعیت true می شود. | (A == B)درست نیست. |
<> | چک کنید اگر مقادیر دو operands برابر یا نباشد، اگر مقادیر برابر نیستند، وضعیت true می شود. | (A <> B) درست است. |
> | اگر مقدار operand چپ بیشتر از مقدار عملگر راست باشد، بررسی می شود، اگر بله، وضعیت true می شود. | (A > B)درست نیست. |
< | اگر مقدار operand چپ کمتر از مقدار عملگر سمت راست باشد، بررسی می شود، اگر بله، وضعیت true می شود. | (A < B) درست است. |
>= | اگر مقدار عملگر سمت چپ بیش تر از مقدار عملگر سمت راست یا برابر آن باشد،بررسی می کند. اگر بله، وضعیت true می شود، | (A >= B)درست نیست. |
<= | چک کنید که آیا مقدار operand چپ کمتر از مقدار مقادیر سمت راست یا برابر آن است یا خیر، اگر بله، وضعیت true می شود. | (A <= B)درست است. |
جدول زیر تمام اپراتورهای بولین را که توسط زبان F # پشتیبانی می شوند نشان می دهد. فرض کنید متغیر A درست است و متغیر B دارای اشتباه است.
اپراتورها | توضیحات | مثال |
---|---|---|
&& | اپراتور Boolean AND نامیده می شود.اگر هر دو عملگر غیر صفر باشند، شرط درست می شود. | (A && B) است false. |
|| | Boolean OR Operator نامیده می شود. اگر هر یک از دو operands غیر صفر باشد، شرط درست می شود. | (A || B) است true. |
not | Boolean NOT اپراتور نامیده می شود. استفاده از حالت منطقی عامل آن را تغییر می دهد.نتیجه عملگر وقتی درست است که عملوند آن دارای ارزش نادرستی باشد. | درست است(A && B) . |
اپراتورهای bitwise بر روی بیت ها کار می کنند و عملیات را بیت بیت انجام می دهند. جداول حقیقی برای &&& (bitwise AND)، ||| (bitwise OR) و ^^^ (bitwise exclusive OR) به شرح زیر هستند.
p | q | p &&& q | p ||| q | p ^^^ q |
۰ | ۰ | ۰ | ۰ | ۰ |
۰ | ۱ | ۰ | ۱ | ۱ |
۱ | ۱ | ۱ | ۱ | ۰ |
۱ | ۰ | ۰ | ۱ | ۱ |
فرض کنید اگر A = 60 باشد؛ و B = 13؛ در حال حاضر در قالب باینری آن ها به شرح زیر خواهد بود .
A = 0011 1100
B = 0000 1101
—————–
A&&&B = 0000 1100
A|||B = 0011 1101
A^^^B = 0011 0001
~~~A = 1100 0011
Operators Bitwise پشتیبانی شده توسط زبان F # در جدول زیر ذکر شده است. فرض کنید متغیر A دارای ۶۰ و متغیر B دارای ۱۳ است.
اپراتور | توضیحات | مثال |
---|---|---|
&&& | اپراتور دوگانی and یک بیت را در نتیجه کپی می کند اگر در هر دو اپراتور وجود داشته باشد. | (A &&& B)خواهد شد ۱۲, که هست ۱۱۰۰ ۰۰۰۰ |
||| | اپراتور دوگانی or یک بیت را کپی می کند اگر در هر یک از اپراتور ها وجود داشته باشد. | (A ||| B) خواهد شد ۶۱, که هست ۰۰۱۱۱۱۰۱ |
^^^ | اپراتور XOR باینری اگر آن را در یکی از operand ها اما نه در هر دو وجود داشته باشد، بیت را کپی می کند. | (A ^^^ B) خواهد شد ۴۹, که هست ۰۰۰۱ ۰۰۱۱ |
~~~ | Binary Ones Complement Operator – اپراتور دو گانی مکمل یک باینری | (A~~~) خواهد شد ۶۱- , که هست ۱۱۰۰۰۰۱۱ در ۲’s complement form. |
<<< | عملگر شیفت به چپ دوگانی. مقدار عملوندهای چپ توسط تعداد بیت های مشخص شده توسط عملگر راست به سمت چپ منتقل می شود. | A <<< 2 خواهد شد ۲۴۰ که هست ۰۰۰۰ ۱۱۱۱ |
>>> | اپراتور شیفت به راست دوگانی . مقدار عملوندهای چپ توسط تعداد بیت های مشخص شده توسط عملوند راست به سمت راست حرکت می کند. | A >>> 2 خواهد شد ۱۵ که هست ۱۱۱۱ ۰۰۰۰ |
در ادامه اولویت اپراتورها در #F رو بررسی می نماییم.
جدول زیر، ترتیب اولویت اپراتورها و سایر کلمات کلیدی را در زبان اف شارپ ، از پایین ترین اولویت به بالاترین اولویت نشان می دهد.
اپراتور | وابستگی |
---|---|
as | Right |
when | Right |
(pipe)| | Left |
; | Right |
let | غیر وابسته |
function, fun, match, try | غیر وابسته |
if | غیر وابسته |
→ | Right |
=: | Right |
, | غیر وابسته |
||، or | Left |
&&، & | Left |
op, >op, =, |op, &op> | Left |
<<<, >>>,~~~,^^^,|||,&&& | Left |
op ^ | Right |
:: | Right |
?: ,< ? : | غیر وابسته |
(op, +op, (binary- | Left |
op, /op, %op* | Left |
op ** | Right |
(f x (function application | Left |
(pattern match) | | Right |
(prefix operators (+op, -op, %, %%, &, &&, !op, ~op | Left |
. | Left |
(f(x | Left |
<f<types | Left |
خب اینم از مبحث عملگرها و اولویت اپراتورها در #F
#F غنی از اپراتورهای تعبیه شده است و انواع مختلفی از اپراتورها را فراهم می کند که در این قسمت به بررسی آن ها پرداختیم.