مشخصات مقاله
-
0.0
-
784
-
0
-
0
Mapping (نگاشت) در سالیدیتی
Mapping (نگاشت) همان دیکشنری در زبان پایتون است. هر متغیری که یک نوع کلید و یک مقدار را بپذیرد یک نگاشت است. در ادامه نحوی برای اعلام نوع نگاشت آمده است:
mapping(_KeyType => _ValueType)
_KeyType
می تواند هر نوع داده همراه با بایت و رشته باشد. همچنین نمیتواند enum, struct, array و یا mapping باشد.
_ValueType
می تواند هر نوع باشد که موجب منعطف بودن نگاشت میشود.
نکات مهم :
Mapping (نگاشت) فقط میتواند نوع ذخیره سازی داشته باشد و به طور کلی برای متغیرهای حالت استفاده میشود.
Mapping (نگاشت) را میتوان به شکل عمومی تعیین کرد. Solidity به طور خودکار برای آن گیرنده ایجاد میکند.
مثال
کد زیر را امتحان نمایید تا متوجه شوید نوع نگاشت در Solidity چگونه کار میکند.
pragma solidity ^0.5.0;
contract LedgerBalance {
mapping(address => uint) public balances;
function updateBalance(uint newBalance) public {
balances[msg.sender] = newBalance;
}
}
contract Updater {
function updateBalance() public returns (uint) {
LedgerBalance ledgerBalance = new LedgerBalance();
ledgerBalance.updateBalance(10);
return ledgerBalance.balances(address(this));
}
}