Solidity - Haritalama

Eşleme, diziler ve yapılar olarak bir başvuru türüdür. Aşağıda bir eşleme türü bildirmek için sözdizimi verilmiştir.

mapping(_KeyType => _ValueType)

Nerede

  • _KeyType- herhangi bir yerleşik tür artı bayt ve dize olabilir. Referans türüne veya karmaşık nesnelere izin verilmez.

  • _ValueType - herhangi bir tür olabilir.

Düşünceler

  • Eşleme yalnızca türüne sahip olabilir storage ve genellikle durum değişkenleri için kullanılır.

  • Eşleme herkese açık olarak işaretlenebilir. Solidity otomatik olarak bunun için alıcı yaratır.

Misal

Solidity'de eşleme türünün nasıl çalıştığını anlamak için aşağıdaki kodu deneyin.

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));
   }
}

Solidity First Application bölümünde verilen adımları kullanarak yukarıdaki programı çalıştırın .

İlk Tıklama updateBalance Değeri 10 olarak ayarlamak için düğme, ardından kodu çözülen çıktıyı şu şekilde gösterecek günlüklere bakın

Çıktı

{
   "0": "uint256: 10"
}