درست مثل برنامه های کامپوتری، قرارداد های هوشمند اتریوم به یک زبان برنامه نویسی نوشته می شوند که solidity نام دارد. لازم به ذکر است که زبانهای برنامهنویسی دیگری هم وجود دارند که میتوان برای ایجاد قراردادهای هوشمند در شبکه اتریوم، از آنها استفاده کرد، اما این روزها انتخاب اکثر توسعه دهندگان این حوزه سالیدیتی است. در ادامه با هم این زبان را فرا می گیریم.
کد های solidity در contract ها گنجانده شده اند. یک contract بلوک اساسی برنامه های سالیدیتی است. همه متغیرها و فانکشن ها متعلق به یک contract هستند و تعریف contract نقطه شروع همه پروژه های شما خواهد بود. ( برای مثال در زبان جاوا همه چیز ابتدا در class تعریف می شود).
یک contract خالی با نام HelloWorld به این شکل است:
به دلیل این که زبان solidity یک زبان کامپایلریست همیشه باید نسخه کامپایلر را در ابتدای contract ها مشخص کرد تا در آینده با معرفی نسخه های جدید کامپایر مشکلی برای اجرای کد شما ایجاد نشود و مشخص باشد که برنامه شما با چه نسخه ای از کامپایلر کار می کند.
به عنوان مثال در contract زیر تصمیم داریم کد ما نسخه های ۰.۵.۰ و بالاتر تا نسخه ۰.۶.۰ از کامپایلر را پشتیبانی کند ( خود نسخه ۰.۶.۰ را شامل نمی شود) . پس باید به صورت زیر آن را در ابتدای contract تعریف کنیم.
همان متغیر در بقیه زبان های برنامه نویسی هستند با این تفاوت که وقتی مقداری را به آن اختصاص می دهیم آن مقدار برای همیشه داخل contract storage ذخیره می شود. (مثل ثبت اطلاعات داخل یک دیتابیس).
به مثال زیر توجه کنید. مقدار ۱۰۰ برای همیشه داخل متغیر myUnsignedInteger در بلاکچین ذخیره می شود. در واقع در این مثال ما یک state variable از نوع uint تعریف کرده ایم (با نام myUnsignedInteger) و مقدار ۱۰۰ را داخل آن ذخیره کرده ایم . توجه کنید که این مقدار برای همیشه داخل بلاکچین ذخیره می شود.
یک data type است و فقط قابلیت نگه داری اعداد مثبت را دارد . برای نگه داری اعداد مثبت و منفی باید از int استفاده کرد.
نکته : در سالیدیتی وقتی uint تعریف می شود منظور همان uint256 هست. که قابلیت نگه داری یک عدد مثبت ۲۵۶ بیتی را دارد. uint های دیگری نیز می توان تعریف کرد. مانند uint8 و uint16 و uint32 که در موارد خاص استفاده می کنیم ولی به صورت کلی و برای سادگی از همان uint بیشتر استفاده می کنیم.
برای نگه داری مقادیر رشته ای از دیتا تایپ string استفاده می کنیم.
گاهی مواقع لازم می شود که یک دیتا تایپ خاص را خودمان تعریف کنیم. بوسیله struct می توانیم یک دیتا تایپ تعریف کنیم که خود شامل property های دیگر باشد. برای مثال به struct زیر دقت کنید. در این جا یک struct با نام Person ساخته شده است که شامل دو مشخصه با نام های age و name است. age از نوع int و name از نوع string.
مانند تمام زبان های برنامه نویسی سالیدی هم قابلیت انجام عملیات ریاضی را دارد.
عملیات جمع : x + y
عملیات منها : x - y
عملیات ضرب : x * y
عملیات تقسیم : x / y
عملیات باقیمانده تقسیم دو متغیر : x % y
عملیات به توان رسانی در متغیر : x ** y
در قسمت بعدی به مفاهیم آرایه ها و فانکشن ها در سالیدیتی می پردازم. حتما قسمت بعدی را دنبال کنید و مطالعه کنید. ممنون که همراهی کردید.
اگر دوست داشتید من را در لینکدین دنبال کنید.