견고성-매핑

매핑은 배열 및 구조체와 같은 참조 유형입니다. 다음은 매핑 유형을 선언하는 구문입니다.

mapping(_KeyType => _ValueType)

어디

  • _KeyType− 모든 내장 유형과 바이트 및 문자열이 될 수 있습니다. 참조 유형이나 복잡한 개체는 허용되지 않습니다.

  • _ValueType − 모든 유형이 될 수 있습니다.

고려 사항

  • 매핑은 다음 유형 만 가질 수 있습니다. storage 일반적으로 상태 변수에 사용됩니다.

  • 매핑은 공개로 표시 할 수 있습니다. Solidity는 자동으로 getter를 생성합니다.

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

Solidity First Application 장에 제공된 단계를 사용하여 위 프로그램을 실행하십시오 .

첫 번째 클릭 updateBalance 값을 10으로 설정하는 버튼은 다음과 같이 디코딩 된 출력을 표시하는 로그를 살펴 봅니다.

산출

{
   "0": "uint256: 10"
}