آموزش متغیرها در سالیدیتی
در این مقاله قصد داریم در مورد متغیرها در سالیدیتی صحبت کنیم و انواع آن ها و ساختار آن ها را برسی کنیم اگر به این مطالب علاقه دارید با ما همراه شوید.

متغیرها در سالیدیتی
سالیدیتی از سه نوع متغیر پشتیبانی می کند:
متغیرهای حالت
متغیرهایی که در سالیدیتی مقادیر آنها به طور دائم در یک انبار قرارداد ذخیره می شود.
متغیرهای محلی
متغیرهایی که در سالیدیتی مقادیر آنها تا زمان اجرای تابع موجود است.
متغیرهای جهانی
متغیرهای ویژه ای در فضای نام جهانی وجود دارد که برای دریافت اطلاعات در مورد بلاک چین استفاده می شود.
سالیدیتی یک زبان استاتیکی تایپ شده است، به این معنی که حالت یا نوع متغیر محلی در سالیدیتی باید در هنگام اعلان مشخص شود. هر متغیر اعلام شده همیشه یک مقدار پیش فرض بر اساس نوع خود دارد. هیچ مفهومی برای «تعریف نشده» یا «تهی» وجود ندارد.
متغیر حالت
متغیرهایی که مقادیر آنها به طور دائم در یک انبار قرارداد ذخیره می شود.
pragma solidity ^0.5.0;
contract SolidityTest {
uint storedData; // State variable
constructor() public {
storedData = 10; // Using State variable
}
}
متغیر محلی
متغیرهایی که مقادیر آنها فقط در تابعی که در آن تعریف شده است در دسترس است. پارامترهای تابع همیشه محلی برای آن تابع هستند.
pragma solidity ^0.5.0;
contract SolidityTest {
uint storedData; // State variable
constructor() public {
storedData = 10;
}
function getResult() public view returns(uint){
uint a = 1; // local variable
uint b = 2;
uint result = a + b;
return result; //access the local variable
}
}
مثال:
pragma solidity ^0.5.0;
contract SolidityTest {
uint storedData; // State variable
constructor() public {
storedData = 10;
}
function getResult() public view returns(uint){
uint a = 1; // local variable
uint b = 2;
uint result = a + b;
return storedData; //access the state variable
}
}
برنامه فوق را با استفاده از مراحل ارائه شده به ترتیب اجرا کنید.
خروجی:
0: uint256: 10
متغیرهای جهانی:
اینها متغیرهای خاصی هستند که در فضای کاری جهانی وجود دارند و اطلاعاتی در مورد بلاک چین و ویژگی های تراکنش ارائه می دهند.
Hash of the given block – only works for 256 most recent, excluding current, blocks | blockhash(uint blockNumber) returns (bytes32) |
Current block miner’s address | block.coinbase (address payable) |
Current block difficulty | block.difficulty (uint) |
Current block gaslimit | block.gaslimit (uint) |
Current block number | block.number (uint) |
Current block timestamp as seconds since unix epoch | block.timestamp (uint) |
Remaining gas | gasleft() returns (uint256) |
Complete calldata | msg.data (bytes calldata) |
Sender of the message (current caller) | msg.sender (address payable) |
First four bytes of the calldata (function identifier) | msg.sig (bytes4) |
Number of wei sent with the message | msg.value (uint) |
Current block timestamp | now (uint) |
Gas price of the transaction | tx.gasprice (uint) |

نام متغیرها در سالیدیتی
هنگام نامگذاری متغیرهای خود در سالیدیتی، قوانین زیر را در نظر داشته باشید. شما نباید از هیچ یک از کلمات کلیدی رزرو شده سالیدیتی به عنوان نام متغیر استفاده کنید. این کلمات کلیدی در بخش بعدی ذکر شده است. به عنوان مثال، نام متغیرهای break یا boolean معتبر نیستند.
نام متغیرها در سالیدیتی نباید با یک عدد (0-9) شروع شود. آنها باید با یک حرف یا یک کاراکتر زیر خط شروع شوند. به عنوان مثال، 123test یک نام متغیر نامعتبر است اما test123 یک نام معتبر است.
نام متغیرها سالیدیتی به حروف بزرگ و کوچک حساس هستند. برای مثال Name و name دو متغیر متفاوت هستند.

دیدگاه ها