عملگرها در برنامه نویسی سالیدیتی
2 خرداد 1401 1401-03-22 13:23عملگرها در برنامه نویسی سالیدیتی
عملگرها در برنامه نویسی سالیدیتی
در هر زبان برنامه نویسی، اپراتورها یا عملگرها نقش حیاتی ایفا می کنند. آنها درست مانند پایه و اساسی برای برنامه نویسی شما هستند. درست مانند تمام زبان های برنامه نویسی دنیا، عملکرد سالیدیتی هم بدون استفاده از عملگرها ناقص است.عملگرها در برنامه نویسی سالیدیتی به کاربران اجازه می دهند تا عملیات متفاوتی را روی عملوندها انجام دهند. در این مقاله به بررسی عملگرها در زبان سالیدیتی می پردازیم تا بیشتر و بیشتر با این زبان آشنا شویم.جهت دریافت اطلاعات بیشتر قبل از مطالعه مقاله زیر توصیه می کنیم مقالات و محتواهای آموزش زبان سالیدیتی را هم مطالعه نمایید.
- هر آنچه که باید در مورد اتریوم بدانید
- قرارداد هوشمند یا اسمارت کانترکت (Smart Contract) چیست؟
- انواع داده ها و متغیرها در زبان برنامه نویسی سالیدیتی
- مکان داده در برنامه نویسی سالیدیتی
عملگرها در برنامه نویسی سالیدیتی
سالیدیتی یک زبان برنامه نویسی شی گرا و سطح بالا برای ایجاد قراردادهای هوشمند (smart contracts) در بلاک چین است که تراکنش ها را خودکار می کند. این زبان در سال 2014 توسط افرادی که در پروژه اتریوم شرکت کرده بودند ایجاد شد. این زبان بیشتر برای بستن قراردادهای هوشمند در بلاک چین اتریوم استفاده می شود.
زبان برنامه نویسی سالیدیتی یک زبان curly-bracket است. این زبان از C++، Python و جاوا اسکریپت تاثیر گرفته است و برای هدف قرار دادن ماشین مجازی اتریوم (EVM) طراحی شده است.
سالیدیتی نیز به عنوان یکی از گویش های جاوا اسکریپت در نظر گرفته می شود. این یعنی اگر بر جاوا اسکریپت مسلط هستید، یادگیری سالیدیتی نباید برای شما کار سختی باشد سالیدیتی از انواع عملگرهای زیر پشتیبانی می کند:
- عملگرهای حسابی
- عملگرهای رابطه ای
- عملگرهای منطقی
- عملگرهای بیتی
- عملگرهای مقداردهی
- عملگرهای شرطی
عملگرهای حسابی در زبان سالیدیتی
از این عملگرها برای انجام عملیات ریاضی استفاده می شود.عملگرهای حسابی در سالدیتی خیلی سرراست هستند.همچنین سالیدیتی به شما امکان استفاده از عملگر حسابی توان را هم میدهد. به کد زیر توجه کنید:
uint x = 10 ** 3; // equal to 10^3 = 1000
عملگر | نماد | توضیحات |
جمع | + | برای جمع کردن دو عبارت استفاده می شود. |
تفریق | – | برای کم کردن دو عبارت از هم استفاده می شود. |
ضرب | * | برای ضرب کردن دو عبارت در هم استفاده می شود. |
تقسیم | / | برای تقسیم کردن دو عبارت استفاده می شود. |
باقی مانده تقسیم(Modulus) | % | باقیمانده را پس از تقسیم اعداد صحیح می دهد |
افزایش(Increment) | ++ | مقدار عدد صحیح را یک عدد افزایش می دهد |
کاهش(Decrement) | — | مقدار عدد صحیح را یک عدد کاهش می دهد |
مثال: در کد های زیر، انواع مختلف عملگرهای حسابی ذکر شده در بالا را نشان می دهد.
/ Solidity contract to demonstrate
// Arithmetic Operator
pragma solidity ^0.5.0;
// Creating a contract
contract SolidityTest {
// Initializing variables
uint16 public a = 20;
uint16 public b = 10;
// Initializing a variable
// with sum
uint public sum = a + b;
// Initializing a variable
// with the difference
uint public diff = a - b;
// Initializing a variable
// with product
uint public mul = a * b;
// Initializing a variable
// with quotient
uint public div = a / b;
// Initializing a variable
// with modulus
uint public mod = a % b;
// Initializing a variable
// decrement value
uint public dec = --b;
// Initializing a variable
// with increment value
uint public inc = ++a;
}
تصویر خروجی کدهای بالا:
نمونه کد عملگرهای حسابی در زبان سالیدیتی
عملگرهای رابطه ای در برنامه نویسی سالیدیتی
این عملگرها برای مقایسه دو مقدار استفاده می شوند.یده و مفهوم اصلی در مورد عملگرهای رابطهای وابسته به مفهوم مقدار true و false است.عباراتی که عملگرهای رابطهای یا منطقی را به کار میبرند برای حالت نادرست یا false مقدار صفر و برای حالت درست یا true مقدار یک برمیگردانند.
عملگر | نماد | توضیحات |
مساوی | == | بررسی می کند که آیا دو مقدار برابر هستند یا نه، اگر برابر باشند true را برمی گرداند و بالعکس |
نامساوی | =! | بررسی می کند که آیا دو مقدار برابر هستند یا نه، اگر برابر نباشند true را برمی گرداند و برعکس |
بزرگتر | < | بررسی می کند که آیا مقدار سمت چپ بزرگتر از راست است یا نه، اگر بزرگتر باشد true را برمی گرداند و بالعکس |
کوچکتر | > | بررسی می کند که آیا مقدار سمت چپ کمتر از مقدار سمت راست است یا نه، اگر کمتر باشد true را برمی گرداند و بالعکس |
بزرگتر مساوی | =< | بررسی می کند که آیا مقدار چپ بزرگتر و مساوی مقدار سمت راست است یا نه، اگر بزرگتر و مساوی باشد، true را برمی گرداند، و بالعکس |
کوچکتر مساوی | => | بررسی میکند که آیا مقدار چپ کمتر از مقدار سمت راست است یا نه، اگر کمتر و برابر باشد true را برمیگرداند و برعکس |
مثال: در کدهای زیر، انواع مختلف عملگرهای رابطه ای ذکر شده در بالا را نشان می دهد.
// Solidity program to demonstrate
// Relational Operator
pragma solidity ^0.5.0;
// Creating a contract
contract SolidityTest {
// Declaring variables
uint16 public a = 20;
uint16 public b = 10;
// Initializing a variable
// with bool equal result
bool public eq = a == b;
// Initializing a variable
// with bool not equal result
bool public noteq = a != b;
// Initializing a variable
// with bool greater than result
bool public gtr = a > b;
// Initializing a variable
// with bool less than result
bool public les = a < b;
// Initializing a variable
// with bool greater than equal to result
bool public gtreq = a >= b;
// Initializing a variable
// bool less than equal to result
bool public leseq = a <= b;
}
تصویر خروجی کدهای بالا:
نمونه کد عملگرهای رابطه ای در زبان سالیدیتی
عملگرهای منطقی برنامه نویسی سالیدیتی
این عملگرها برای ترکیب دو یا چند شرط استفاده می شوند.عملگرهای منطقی در سالیدیتی با نمادهای مشابه زبانهای برنامهنویسی دیگر کار میکنند. عملگرهای منطقی شامل این موارد میشوند: ! (نفی منطقی)، && (و منطقی)، || (یا منطقی)، == (تساوی، برابری)، و =! (نابرابری).
عملگر | نماد | توضیحات |
و(Logical AND) | && | اگر هر دو شرط درست باشد true و اگر یک یا هر دو شرط نادرست باشند، false را برمیگرداند |
یا(Logical OR) | || | اگر یک یا هر دو شرط درست باشد true و وقتی هر دو نادرست باشند، false را برمیگرداند |
Logical NOT | ! | اگر شرط برآورده نشده باشد true و در غیر این صورت false را برمی گرداند |
مثال: در کدهای زیر، انواع مختلف عملگرهای منطقی ذکر شده در بالا را نشان می دهد.
// Solidity program to demonstrate
// Logical Operators
pragma solidity ^0.5.0;
// Creating a contract
contract logicalOperator{
// Defining function to demonstrate
// Logical operator
function Logic(
bool a, bool b) public view returns(
bool, bool, bool){
// Logical AND operator
bool and = a&&b;
// Logical OR operator
bool or = a||b;
// Logical NOT operator
bool not = !a;
return (and, or, not);
}
}
تصویر خروجی کدهای بالا:
نمونه کد عملگرهای منطقی در زبان سالیدیتی
عملگرهای بیتی برنامه نویسی Solidity
عملگرهای بیتی بر روی یک متغییر یک عمل بیتی را انجام می دهد و بیت ها را پس عمل بر روی آن بر می گرداند.اگر هم که متغییر ها رشته ای باشند بر روی کد های اسکی(ASCII) آنها اعمال می شود.
این عملگرها در سطح بیتی کار می کنند که برای انجام عملیات سطح بیت استفاده می شود. Solidity از عملگرهای حسابی زیر پشتیبانی می کند:
عملگر | نماد | توضیحات |
Bitwise AND | & | یک عملیات Boolean AND روی هر بیت از آرگومان های عدد صحیح خود انجام می دهد.
مثال: (A & B) 2 است. |
BitWise OR | | | روی هر بیت از آرگومان های عدد صحیح خود یک عملیات OR Boolean انجام می دهد.
مثال: (A | B) 3 است. |
Bitwise XOR | ^ | یک عملیات OR Boolean انحصاری را روی هر بیت از آرگومان های عدد صحیح خود انجام می دهد. OR انحصاری یعنی که یا عملوند یک درست است یا عملوند دو درست است، اما نه هر دو.
مثال: (A ^ B) 1 است. |
Bitwise Not | ~ | این یک عملگر واحد است و با معکوس کردن تمام بیت های عملوند عمل می کند.
مثال: (~B) 4- است. |
Left Shift | >> | تمام بیت های عملوند اول خود را با تعداد مکان های مشخص شده در عملوند دوم به چپ منتقل می کند. بیت های جدید با صفر پر می شوند. جابجایی یک مقدار در یک موقعیت معادل ضرب آن در 2، جابجایی دو موقعیت معادل ضرب در 4 است.
مثال: (A << 1) برابر 4 است. |
Right Shift | << | عملگر باینری شیفت راست. مقدار عملوند سمت چپ با تعداد بیت های مشخص شده توسط عملوند سمت راست به سمت راست منتقل می شود. |
مثال: در کدهای زیر، انواع مختلف عملگرهای بیتی ذکر شده در بالا را نشان می دهد.
// Solidity program to demonstrate
// Bitwise Operator
pragma solidity ^0.5.0;
// Creating a contract
contract SolidityTest {
// Declaring variables
uint16 public a = 20;
uint16 public b = 10;
// Initializing a variable
// to '&' value
uint16 public and = a & b;
// Initializing a variable
// to '|' value
uint16 public or = a | b;
// Initializing a variable
// to '^' value
uint16 public xor = a ^ b;
// Initializing a variable
// to '<<' value
uint16 public leftshift = a << b; //
Initializing a variable // to '>>' value
uint16 public rightshift = a >> b;
// Initializing a variable
// to '~' value
uint16 public not = ~a ;
}
تصویر خروجی کدهای بالا:
نمونه کد عملگرهای بیتی در زبان سالیدیتی
عملگرهای مقداردهی در سالیدیتی
این عملگرها برای تخصیص مقدار به یک متغیر(var) هستند. عملوند سمت چپ متغیر است در حالی که عملوند سمت راست مقدار است. سالیدیتی از عملگرهای زیر پشتیبانی می کند:
عملگر | نماد | توضیحات |
Simple Assignment | = | مقدار سمت راست را به عملوند سمت چپ اختصاص می دهد |
Add Assignment | =+ | عملوند سمت راست را به عملوند سمت چپ اضافه می کند و مقدار را به عملوند چپ اختصاص می دهد. |
Subtract Assignment | =- | عملوند سمت راست را از عملوند سمت چپ کم می کند و مقدار را به عملوند چپ اختصاص می دهد. |
Multiply Assignment | =* | هر دو عملوند را ضرب می کند و مقدار را به عملوند چپ اختصاص می دهد |
Divide Assignment | =/ | عملوند سمت چپ را به عملوند سمت راست تقسیم می کند و مقدار را به عملوند چپ اختصاص می دهد. |
Modulus Assignment | =% | عملوند سمت چپ را به عملوند سمت راست تقسیم می کند و باقیمانده را به عملوند چپ اختصاص می دهد. |
مثال: در کدهای زیر، انواع مختلف عملگرهای مقداردهی ذکر شده در بالا را نشان می دهد.
// Solidity program to demonstrate
// Assignment Operator
pragma solidity ^0.5.0;
// Creating a contract
contract SolidityTest {
// Declaring variables
uint16 public assignment = 20;
uint public assignment_add = 50;
uint public assign_sub = 50;
uint public assign_mul = 10;
uint public assign_div = 50;
uint public assign_mod = 32;
// Defining function to
// demonstrate Assignment Operator
function getResult() public{
assignment_add += 10;
assign_sub -= 20;
assign_mul *= 10;
assign_div /= 10;
assign_mod %= 20;
return ;
}
}
تصویر خروجی کدهای بالا:
نمونه کد عملگرهای مقداردهی در زبان سالیدیتی
عملگرهای شرطی در Solidity
عملگر شرطی ابتدا یک عبارت را برای مقدار درست یا نادرست ارزیابی می کند و سپس یکی از دو عبارت داده شده را بسته به نتیجه ارزیابی اجرا می کنند.
if condition true ? then A: else B
عملگر | توضیحات |
: ? (Conditional) | اگر شرط درست است ؟ سپس مقدار X : در غیر این صورت مقدار Y |
مثال: در کدهای زیر، انواع مختلف عملگرهای شرطی ذکر شده در بالا را نشان می دهد.
// Solidity program to demonstrate
// Conditional Operator
pragma solidity ^0.5.0;
// Creating a contract
contract SolidityTest{
// Defining function to demonstrate
// conditional operator
function sub(
uint a, uint b) public view returns(
uint){
uint result = (a > b? a-b : b-a);
return result;
}
}
تصویر خروجی کدهای بالا:
نمونه کد عملگرهای شرطی در زبان سالیدیتی
جمع بندی عملگرها در برنامه نویسی سالیدیتی
مقاله ای که خواندید یک راهنمای جامع درمورد عملگرهای زبان برنامه نویسی سالیدیتی بود. امیدوارم این مقاله برای شما مفید بوده باشد. در صورتی نیاز به راهنمایی بیشتری داشتید، لطفا سوال خود را در بخش نظرات ثبت کنید.
در صورتی که توضیحاتی که در مقاله عملگرها داده شد و هم چنین تکه کدهایی که در این مقاله آورده شد برای شما نامفهوم می باشد می توانید با شرکت در دوره آموزشی سالیدیتی تمامی مفاهیم مربوط به به برنامه نویسی سالیدیتی و نحوه ی نوشتن قرارداد های هوشمند را یادبگیرید.
منابع آموزشی: وب سایت geeksforgeeks – medium.com – tutorialspoint