جلسه دوم Solidity - بررسی انواع داده

سالیدیتی (Solidity) یک زبان برنامه‌ نویسی typed language است.

برخلاف زبان‌ هایی مانند جاوااسکریپت (JavaScript) یا پایتون (Python) که در آن‌ها می‌توانید هر نوع داده‌ای مثل مقدار بولی (boolean)، رشته (string) یا عدد (number) را به یک متغیر اختصاص دهید، در سالیدیتی هر متغیر باید فقط یک نوع داده‌ مشخص داشته باشد و این نوع نیز باید به‌ طور صریح تعریف شود.

آموزش انواع داده با اندازه ثابت در سالیدیتی

این قاعده برای توابع نیز برقرار است؛ یعنی هنگام تعریف یک تابع، باید نوع آرگومان‌ها و نوع مقدار بازگشتی را دقیقاً مشخص کنید.

در ادامه به مهم‌ترین انواع داده در سالیدیتی می‌پردازیم:

  • عدد صحیح بدون علامت یا uint256

  • متغیر بولی یا bool

  • نوع address که برای نگهداری آدرس کیف پول‌های اتریوم یا قراردادهای هوشمند به کار می‌رود

سالیدیتی همچنین از آرایه‌ها (arrays)، رشته‌ها (strings)، ساختارها (structs) و انواع داده‌ دیگری نیز پشتیبانی می‌کند که هرکدام نیازمند توضیحات جداگانه هستند و در ادامه به آن‌ها خواهیم پرداخت.

اکنون بیایید سه تابع مختلف را بررسی کنیم که هر یک از این نوع داده‌ها را بازمی‌گردانند.

در مثال‌های قبلی، ابتدا مقدار مورد نظر را به یک متغیر اختصاص دادیم و سپس آن را بازگرداندیم. البته در سالیدیتی این امکان وجود دارد که مقدار را مستقیماً بازگردانیم، مانند مثال زیر.

توجه داشته باشید که تعریف تابع (Function Signature) باید دقیقاً با نوع داده‌ی بازگشتی (Return Type) مطابقت داشته باشد. در غیر این صورت، کامپایلر هنگام بررسی کد با خطا مواجه خواهد شد. مانند کد زیر:

Address (آدرس)

در سالیدیتی، نوع داده‌ی address به صورت یک رشته‌ی هگزادسیمال (hexadecimal) با طول ۴۰ کاراکتر نمایش داده می‌شود که همیشه با پیشوند 0x شروع می‌شود. رشته‌ی هگزادسیمال معتبر فقط می‌تواند شامل اعداد ۰ تا ۹ و حروف a تا f باشد.

هشدار: هنگام وارد کردن دستی آدرس‌ها باید دقت زیادی داشته باشید. سالیدیتی مقدار 0x1 را به صورت خودکار به آدرسی تبدیل می‌کند که برابر است با 0x0000000000000000000000000000000000000001. اگر آدرسی که وارد می‌کنید کمتر از ۴۰ کاراکتر داشته باشد، سالیدیتی به‌طور خودکار با اضافه کردن صفرهای پیشوندی (leading zeros) آن را به ۴۰ کاراکتر می‌رساند.

در مقابل، اگر آدرسی با بیش از ۴۰ کاراکتر وارد کنید، کد شما به هیچ عنوان کامپایل نخواهد شد.

توجه داشته باشید که این ۴۰ کاراکتر فقط به بخش هگزادسیمال مربوط است و پیشوند 0x جزو آن حساب نمی‌شود.

uint256 (عدد صحیح بدون علامت ۲۵۶ بیتی)

بیایید دوباره به نوع داده‌ی uint256 نگاه کنیم. دقیقاً چه مفهومی دارد؟

حرف u در ابتدای uint مخفف unsigned است، به این معنا که این نوع داده نمی‌تواند اعداد منفی را نمایش دهد. عدد 256 نشان می‌دهد که این متغیر می‌تواند عددی به بزرگی ۲۵۶ بیت را در خود ذخیره کند، یا به عبارت دیگر، مقادیری بین ۰ تا (2^256)-1 را پشتیبانی می‌کند.

برای اینکه ابعاد این عدد را بهتر درک کنیم، می‌توانیم مقدار آن را در پایتون محاسبه کنیم و ببینیم چقدر بزرگ است.

این عدد به قدری بزرگ است که تقریباً تمام نیازهای شما در بلاکچین را پوشش می‌دهد.

چنین عددی بدون مشکل در سالیدیتی کامپایل می‌شود.

اما اگر عددی بزرگ‌تر از این مقدار تعریف کنید، کد شما کامپایل نخواهد شد.

همان‌طور که می‌توانید حدس بزنید، یک متغیر از نوع uint128 می‌تواند عددی بدون علامت (مثبت) تا حداکثر مقدار 2^128 – 1 را در خود ذخیره کند.

در بیشتر موارد، بهتر است تنها از uint256 استفاده کنید. استفاده از انواع کوچک‌تر مانند uint64 یا uint128 مربوط به مباحث پیشرفته‌تر است. فعلاً توصیه می‌شود برای ساده‌تر بودن و جلوگیری از بروز مشکلات، فقط از uint256 استفاده کنید.

نوع داده‌ بولی (Boolean) در سالیدیتی

این بخش کاملاً ساده و مشابه سایر زبان‌های برنامه‌ نویسی است.
یک متغیر بولی (bool) فقط می‌تواند یکی از دو مقدار true (درست) یا false (نادرست) را در خود نگهداری کند. اگر درباره آموزش انواع داده با اندازه ثابت در برنامه نویسی سالیدیتی سوالی داشتید می توانید در بخش نظرات مطرح نمایید.

به این مطلب امتیاز دهید

راستی! برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام سورس باران عضو شوید.

پکیج آموزش پروژه محور لاراول و طراحی وب سایت کانون قلم چی
  • انتشار: ۸ اردیبهشت ۱۴۰۴

دسته بندی موضوعات

آخرین محصولات فروشگاه

مشاهده همه

نظرات

بازخوردهای خود را برای ما ارسال کنید