اغلب به آن stripped down می گویند، زیرا شامل هیچ ویژگی غیر ضروری نیست. در این آموزش نحوه استفاده از پراگما و نظرات در Solidity و همچنین سایر نکات مربوط به سبک کد را توضیح خواهیم داد.
در جلسه قبل در مورد چگونگی یادگیری سالیدیتی صحبت کردیم حال میخواهیم بدانید که نحو Solidity ساده است.
اغلب به آن stripped down می گویند، زیرا شامل هیچ ویژگی غیر ضروری نیست. در این آموزش نحوه استفاده از پراگما و نظرات در Solidity و همچنین سایر نکات مربوط به سبک کد را توضیح خواهیم داد.
بسیاری از توصیههای نحو Solidity از راهنمای سبک pep8 پایتون به عاریت گرفته شدهاند. بنابراین، در صورت داشتن پیشینه کدنویسی، درک آنها بسیار آسان خواهد بود.
پیشنهاد مطالعه: آموزش سالیدیتی
نکات اصلی
Table of contents [Show]
ما باید با توضیح پراگما شروع کنیم. فایل های منبع Solidity همیشه آن را در همان ابتدا قرار داده اند. نسخه های کامپایلری که کد خاصی با آن سازگار است را تعریف می کند.
pragma solidity ^0.4.7;
فایلی که با خطی که در مثال بالا می بینیم شروع می شود، روی کامپایلر نسخه 0.4.6 یا قبل از آن کار نمی کند.
استفاده از ^ همچنین مشخص می کند که با 0.5.0 یا نسخه جدیدتر کامپایل نخواهد شد.
بنابراین کد در تمامی نسخه های 0.4.7 تا 0.4.25 با موفقیت کامپایل می شود.
این محدودیتها بسیار مهم هستند زیرا نسخههایی که نام x.0.0 یا 0.x.0 دارند، تغییرات عمدهای را در برنامه ایجاد میکنند.
درک این نکته مهم است که وقتی نسخه پراگما را اضافه می کنید، کامپایلر Solidity نسخه ها را تغییر نمی دهد، هیچ ویژگی را فعال یا غیرفعال نمی کند.
فقط برای بررسی اینکه آیا کامپایلری که استفاده می کنید با کد سازگار است یا خیر استفاده می شود.
طبق توصیههای pep8، باید از رمزگذاری UTF-8 یا ASCII استفاده کنید و خطوط کد خود را کمتر از 79 کاراکتر نگه دارید.
همچنین باید از فضاها برای تورفتگی استفاده کنید و از مخلوط کردن آنها با زبانه ها خودداری کنید.
چهار فاصله نشان دهنده یک سطح تورفتگی است.
دو خط خالی باید همه اعلان های سطح بالا را احاطه کند. یک خط خالی برای اعلام عملکرد در قرارداد کافی است. اگر مجموعه ای از دستورات یک خطی دارید، ممکن است اصلا آنها را جدا نکنید.
توجه: شما فقط می توانید از دابل کوتیشن برای رشته های داده استفاده کنید.
شما باید فقط از یک تورفتگی برای خطوط تو در تو استفاده کنید و هر آرگومان را در یک متغیر جداگانه نگه دارید.
فضای خالی غیر ضروری نباید گنجانده شود:
داخل براکت ها، براکت ها یا پرانتز قبل از نقطه ویرگول یا کاما در تابع بازگشتی با این حال، شما باید از یک فضای واحد استفاده کنید:
برای جداسازی ساختارهای کنترلی (if، while، و for) از بلوک شرطی
برای جدا کردن بلوک شرطی از آکولاد استفاده کنید
هنگام فهرست کردن توابع، باید آنها را بر اساس نوع view سازماندهی کنید تا به خوانندگان کمک کنید آنها را به درستی شناسایی کنند.
حالت های مختلف توابع را در زیر ملاحظه میکنید:
در Solidity می توانید نظرات ساده و NatSpec را بگذارید.
یک تفاوت عمده بین آنها وجود دارد. کامپایلرهای Solidity قالب NatSpec را درک می کنند و این نظرات را برای ماشین قابل خواندن می کند.
توصیه می کنیم از NatSpec برای همه یادداشت ها در رابط های عمومی استفاده کنید.
نوشتن نظرات ساده در Solidity آسان است که به طول کامنت شما بستگی دارد:
خط را با // شروع کنید تا یک نظر تک خطی اضافه شود.
با /* شروع کنید و با */ پایان دهید تا یک نظر چند خطی درج شود.
همچنین می توانید نظرات Solidity خود را در فرمت مشخصات زبان طبیعی اتریوم (NatSpec) بنویسید. که شکل خاصی از نظرات را در قراردادهای Solidity تعریف می کند.
توسعه دهندگان از آن برای مستندسازی متغیرهای بازگشتی، توابع و غیره استفاده می کنند. شما باید تمام مستندات را قبل از کلمات کلیدی کلاس، رابط و تابع وارد کنید.
می توانید در Solidity نظرات تک خطی یا چند خطی بنویسید و از دو نوع نحو استفاده کنید: خط را با /// شروع کنید تا یک نظر تک خطی اضافه شود.
با /** شروع کنید و با /* پایان دهید تا یک نظر چند خطی درج شود.
نظرات Solidity نوشته شده در NatSpec می توانند دو نوع باشند:
هیچ قانون سختگیرانه ای در نحو Solidity برای انتخاب نام وجود ندارد.
با این حال، برخی از دستورالعمل ها وجود دارد که به خوانایی کمک می کند و همچنین به نام اجازه می دهد اطلاعات بیشتری را ارائه دهد. هر زمان که نیاز به نامگذاری یک کتابخانه Solidity، قرارداد، متغیر یا هر چیز دیگری دارید، باید این توصیهها را عمل کنید.
نام گذاری آبجکت ها | توصیه نامگذاری |
---|---|
نام کتابخانه یا قرارداد Solidity | هر کلمه با حروف بزرگ نوشته شده است (به عنوان مثال BasicToken) |
ساختار | هر کلمه با حروف بزرگ (مثل MyToken) |
رویداد | هر کلمه با حروف بزرگ ( BeforeTransfer) |
تابع | تابع حروف بزرگ هر کلمه به جز کلمه اول (مثل addNewMember) |
آرگومان تابع | هر کلمه با حروف بزرگ به جز کلمه اول (یعنی targetAdress) |
متغیر محلی | با حروف بزرگ به جز اولین کلمه (یعنی currentTokenSupply) |
const ثابت | همه حروف بزرگ با خط زیر بین کلمات (به عنوان مثال، TOKEN_NAME) |
اصلاح کننده Modifier | هر کلمه با حروف بزرگ به جز اولین کلمه (یعنی فقط بعد از) |
Enum | هر کلمه با حروف بزرگ (یعنی CharacterLocation) |
اگر نامی که میخواهید استفاده کنید محفوظ است، برای جلوگیری از برخورد با نام های رزرو شده ، از خط زیر خط آخر استفاده کنید.
توجه: هنگام نامگذاری، از استفاده از حروف کوچک L، O بزرگ و I خودداری کنید. آنها اغلب باعث سردرگمی می شوند زیرا بسیار شبیه به اعداد 1 و 0 در کد هستند
خلاصه