AI & ML; Python Programmer And Interested In Decentralized World
روز ۳/۱۰۰ - درک انواع دادههای اولیه در سالیدیتی
📝 به سومین بخش از مجموعه #۱۰۰روزباسالیدیتی خوش آمدید! در این مقاله، به بررسی «انواع دادههای پایه»در زبان سالیدیتی خواهیم پرداخت. درک این انواع دادههای اساسی برای ساخت قراردادهای هوشمند در سالیدیتی حیاتی است، زیرا آنها بلاکهای ساختاری دادههای قرارداد شما را تشکیل میدهند. پس، بیایید عمیق تر شویم و انواع مختلف دادههای اولیه موجود در سالیدیتی و ویژگیهای آنها را کشف کنیم.
نوع Boolean
بیایید با نوع داده بولین شروع کنیم. در سالیدیتی، نوع داده بولین میتواند دو مقدار ممکن داشته باشد: true یا false. این برای نمایش مقادیر منطقی استفاده میشود و به ویژه در بیانیههای شرطی و تصمیمگیری درون قراردادهای هوشمندتان مفید است.
انواع عدد صحیح بدون علامت
سالیدیتی چندین نوع عدد صحیح بدون علامت را فراهم میکند که برای نمایش اعداد صحیح غیر منفی استفاده میشوند. این انواع شامل `uint8`، `uint16`، `uint256` و بیشتر میشوند. عددی که بعد از `uint` میآید، تعداد بیتهایی که هر نوع میتواند نگه دارد را نشان میدهد.
برای مثال، `uint8` میتواند مقادیری از ۰ تا ۱ — ۲⁸ (۲۵۵) را ذخیره کند، در حالی که `uint256` میتواند مقادیری از ۰ تا ۱ — ۲²⁵⁶ را ذخیره کند و دامنهای وسیع از مقادیر ممکن را فراهم میآورد.
انواع عدد صحیح دارای علامت
علاوه بر اعداد صحیح بدون علامت، سالیدیتی همچنین از انواع عدد صحیح دارای علامت پشتیبانی میکند. این انواع میتوانند هم اعداد صحیح مثبت و هم منفی را نشان دهند. مشابه با اعداد صحیح بدون علامت، اعداد صحیح دارای علامت اندازههای مختلفی دارند که از int8 تا int256 متغیرند.
رای مثال، int8 میتواند مقادیری از ۲⁷- تا ۱ — ۲⁷ (-۱۲۸ تا ۱۲۷) را نگه دارد، در حالی که int256 میتواند مقادیری از ۲²⁵⁵- تا ۱ — ۲²⁵⁵ را نگه دارد. نوع int یک نام مستعار برای int256 است و دامنهای وسیع از مقادیر عدد صحیح دارای علامت را فراهم میآورد.
نوع Address
نوع address در سالیدیتی برای ذخیره آدرسهای اتریومی استفاده میشود. این نوع یک مقدار ۲۰ بایتی را نمایش میدهد و معمولا برای ذخیره آدرسهای حسابهای کاربری یا قراردادهای هوشمند استفاده میشود. آدرسها مقادیر هگزادسیمال هستند و معمولاً به صورت ۴۰ کاراکتری بیان میشوند (مثلاً 0xCA35b7d915458EF540aDe6068dFe2F44E8fa733c).
نوع Bytes
در سالیدیتی، نوع bytes یک آرایه دینامیک از بایتها را نمایش میدهد. این نوع مختصری برای byte[] است. بایتها برای ذخیره دنبالههایی از بایتها استفاده میشوند و اغلب برای رسیدگی به دادههای خام یا انجام عملیاتهای رمزنگاری به کار گرفته میشوند.
سالیدیتی همچنین آرایههای بایت با اندازه ثابت را فراهم میکند، اما برای اختصار، در این مقاله تمرکز ما روی آرایههای بایت دینامیک خواهد بود.
برای مثال، bytes1 یک بایت تکی را نشان میدهد و میتوانید آن را با یک مقدار هگزادسیمال مانند 0xb5 مقداردهی اولیه کنید. به طور مشابه، bytes1 با مقدار 0x56 یک بایت دیگر را نشان میدهد. این بایتها میتوانند با استفاده از عملیاتهای بیت به بیت دستکاری شوند و معمولاً در عملیاتهای سطح پایین درون قراردادهای هوشمند به کار میروند.
مقادیر پیشفرض
زمانی که شما در سالیدیتی متغیرها را بدون اختصاص دادن صریح یک مقدار به آنها تعریف میکنید، با مقادیر پیشفرض مقداردهی اولیه میشوند. به عنوان مثال، یک متغیر bool به false، یک متغیر uint به 0، یک متغیر int به 0 و یک متغیر address به 0x0000000000000000000000000000000000000000 مقداردهی اولیه خواهد شد. در نظر گرفتن این مقادیر پیشفرض هنگام طراحی و توسعه قراردادهای هوشمندتان حیاتی است.
کد نمونه سالیدیتی
بیایید نگاهی به یک قرارداد هوشمند نمونه بیندازیم که استفاده از این انواع دادههای اولیه را نشان میدهد:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.17;
contract Primitives {
bool public boo = true;
uint8 public u8 = 1;
uint public u256 = 456;
uint public u = 123;
int8 public i8 = -1;
int public i256 = 456;
int public i = -123;
address public addr = 0xCA35b7d915458EF540aDe6068dFe2F44E8fa733c;
bytes1 a = 0xb5;
bytes1 b = 0x56;
bool public defaultBoo;
uint public defaultUint;
int public defaultInt;
address public defaultAddr;
}
در این قرارداد نمونه، ما متغیرهایی از انواع دادههای اولیه مختلف تعریف کردهایم و استفاده از آنها را نشان دادهایم. شما میتوانید با این متغیرها تعامل داشته باشید و مقادیر آنها را از طریق توابع getter که به طور خودکار توسط سالیدیتی برای متغیرهای حالت عمومی ایجاد میشوند، مشاهده کنید.
نتیجهگیری
در این مقاله، به بررسی انواع دادههای پایهای موجود در سالیدیتی پرداختیم. درک این دادهها برای ساخت قراردادهای هوشمند مستحکم و کارآمد بسیار مهم است. با استفاده از متغیرهای بولین، اعداد صحیح با و بدون علامت، آدرسها و بایتها، شما قادر خواهید بود ساختارهای داده پیچیدهتری بسازید و عملکردهای قدرتمندی را در قراردادهای خود پیادهسازی کنید.
به خاطر داشته باشید که هنگام طراحی قراردادهای هوشمند خود، دامنه و محدودیتهای هر نوع داده را در نظر بگیرید، زیرا این موارد میتوانند بر کارایی و امنیت برنامههای شما تأثیربگذارند. منتظر پست بعدی در مجموعه #۱۰۰روزباسالیدیتی باشید، جایی که به مفاهیم پیشرفتهتر سالیدیتی به طور عمیقتری خواهیم پرداخت.
🌐 برای اطلاعات بیشتر در مورد انواع دادههای اولیه و نحوه استفاده از آنها، به داکیومنت سالیدیتی مراجعه کنید.
🔸 این مقاله،از مقالات ترجمه شده از سالیدیتی آکادمی است برای خواندن مقاله اصلی میتوانید به لینک زیر مراجعه کنید:
مطلبی دیگر از این انتشارات
روز ۷/۱۰۰ - بررسی خواندن و نوشتن State variable در سالیدیتی
مطلبی دیگر از این انتشارات
روز ۱۲/۱۰۰ - کاوش در قدرت mapping در سالیدیتی
مطلبی دیگر از این انتشارات
روز ۱۳/۱۰۰ - آشنایی با آرایهها در زبان سالیدیتی