یادگیری سالیدیتی
سالیدیتی، زبان برنامهنویسی قدرتمند و شیگرایی است که در سال ۲۰۱۴ توسط گوین وود، یوئیچی هیرای، کریستین ریتویسنر و الکساندر برگساسی توسعه یافت. این زبان از پایتون و جاوا اسکریپت الهام گرفته و بهعنوان یکی از اصلیترین ابزارهای برنامهنویسی قراردادهای هوشمند روی بلاکچین اتریوم شناخته میشود.
اگر به یادگیری سالیدیتی علاقهمند هستید، باید بدانید که این زبان نقش کلیدی در توسعه اپلیکیشنهای غیرمتمرکز (DApps) دارد و برای اجرای قراردادهای هوشمند در ماشین مجازی اتریوم (EVM) کامپایل میشود. سالیدیتی شامل مفاهیمی مانند متغیرها، توابع، کلاسها و مدیریت دادهها است که به توسعهدهندگان امکان میدهد کدهای شفاف و قابل اطمینانی بنویسند.
با یادگیری سالیدیتی، میتوانید آینده دنیای بلاکچین را بسازید!
صفر تا صد سالیدیتی


در ادامه توضیح میدهیم که چگونه میتوانیم کامپایلر Solidity را در ماشین CentOS راهاندازی کنیم.

یک فایل سورس Solidity میتواند شامل تعداد زیادی از تعاریف قرارداد، import directives و pragma directives باشد.

از Remix IDE برای کامپایل و اجرای پایه Solidity Code خود استفاده مینماییم.


Solidity مجموعهای غنی از انواع دادههای داخلی و همچنین تعریف شده توسط کاربر را به برنامهنویس ارائه میدهد.


دامنه متغیرهای محلی محدود به تابعی است که در آن تعریف شدهاند، اما State Variables میتوانند سه نوع دامنه داشته باشند.


در حین نوشتن یک قرارداد، ممکن است با موقعیتی مواجه شوید که در آن باید یک عمل را بارها و بارها انجام دهید. در چنین شرایطی، برای کاهش تعداد خطوط، باید دستورات حلقه را بنویسید.


حلقه do...while شبیه حلقه while است با این تفاوت که بررسی شرط در انتهای حلقه اتفاق می افتد.

حلقه for فشرده ترین شکل حلقه است و این شامل سه بخش مهم زیر می باشد.

Solidity کنترل کاملی را برای مدیریت حلقهها و عبارات سوئیچ فراهم میکند. ممکن است شرایطی پیش بیاید که لازم باشد از یک حلقه خارج شوید بدون اینکه به انتهای آن برسید.

در حین نوشتن یک برنامه، ممکن است شرایطی پیش بیاید که لازم باشد یکی مسیر خاص را انتخاب نمایید. در چنین مواردی، شما باید از عبارات شرطی استفاده کنید که به برنامه شما اجازه میدهد تصمیمات صحیح بگیرد و اقدام درست را انجام دهد.

دستور if دستور کنترل است که به Solidity اجازه می دهد تا تصمیم گیری کند و دستورات را به صورت شرطی اجرا نماید.

دستور "if...else" شکل بعدی دستور کنترل است که به Solidity اجازه می دهد تا دستورات را به روش کنترل شده تری اجرا کند.

عبارت if...else if... شکل پیشرفته if...else است که به Solidity اجازه می دهد تا از چند شرط تصمیم درستی بگیرد.

Solidity از String Literal با استفاده از دو گیومه (") و (') پشتیبانی میکند و رشته را بهعنوان یک نوع داده برای اعلام متغیری از نوع String ارائه میدهد.

یک آرایه برای ذخیره مجموعهای از دادهها استفاده میشود، اما اغلب مفیدتر است که آن را مجموعهای از متغیرهای یک نوع در نظر بگیریم.

Enums (داده های شمارشی) یک متغیر را محدود می کند به اینکه تنها یکی از چند مقدار از پیش تعریف شده را داشته باشد.

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

هر متغیری که یک نوع کلید و یک مقدار را بپذیرد یک نگاشت است.

Solidity امکان تبدیل ضمنی و همچنین صریح را فراهم می کند.

در زبان برنامه نویسی سالیدیتی Solidity می توان از Wei ،Finney ،Szabo یا Ether به عنوان پسوند استفاده کرد که ..

متغیرهای ویژه متغیرهایی هستند که در سطح Global در دسترس هستند و اطلاعاتی در مورد بلاک چین ارائه می دهند.

توابع در سالیدیتی

مانند هر زبان برنامه نویسی پیشرفته دیگری، Solidity نیز از تمام ویژگی های لازم برای نوشتن کدهای ماژولار با استفاده از توابع پشتیبانی می کند.

Modifiers برای تغییر رفتار یک تابع استفاده می شود.

توابع view اطمینان می دهند که state را تغییر نمی دهند. یک تابع را می توان به عنوان view اعلام کرد.

توابع Pure تضمین می کنند که state را نمی خوانند یا تغییر نمی دهند. یک تابع را می توان Pure در نظر گرفت.

تابع بازگشتی یک تابع ویژه است که در یک قرارداد در دسترس است و دارای ویژگی های زیر می باشد:

شما می توانید تعاریف متعددی برای یک نام تابع در یک محدوده داشته باشید.

Solidity امکان ایجاد توابع ریاضی داخلی را نیز فراهم می کند.

الگوهای رایج در سالیدیتی
آموزش پیشرفته سالیدیتی

قرارداد در Solidity مشابه کلاس C++ است. یک قرارداد دارای ویژگی های زیر است:


Constructor یک تابع ویژه است که با استفاده از کلمه کلیدی Constructor ایجاد می شود.

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

اینترفیس ها مشابه قراردادهای انتزاعی هستند و با استفاده از کلمه کلیدی Interface ایجاد می شوند.

کتابخانه ها مشابه قراردادها می باشند اما عمدتا برای استفاده مجدد به کار می روند.

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

رویداد عضوی ارث برده شده، از یک قرارداد است. هنگامی که یک رویداد منتشر می شود، آرگومان های ارسال شده در گزارش های تراکنش را ذخیره می کند.

Solidity توابع مختلفی را برای مدیریت خطا فراهم می کند.