Solidity 솔리디티 강좌 19강 : Mapping(맵핑) 과 Array(배열) 주의할 점

flowing1ife·2023년 7월 7일
0

[ Solidity 깨부수기 ]

목록 보기
19/29
post-thumbnail

Solidity 솔리디티 강좌 19강 : Mapping(맵핑) 과 Array(배열) 주의할 점
이번엔 solidity의 Mapping과 Array 사용시 주의할 점에 대해 알아보도록 하자.


Mapping(맵핑) 과 Array(배열) 주의할 점

📌 Solidity

// SPDX-License-Identifier:GPL-30
pragma solidity >= 0.7.0 < 0.9.0;

contract lec19{
   uint256 num = 89;
   mapping(uint256 => uint256) numMap;
   uint256[] numArray;
   
   function changeNum(uint256 _num) public{
       num = _num;
   }
   function showNum() public view returns(uint256){
      return num;
   }
   
   function numMapAdd() public{
       numMap[0] = num;
   }
   function showNumMap() public view returns(uint256){
       return numMap[0];
   }
   function UpdateMap() public{
       numMap[0] = num;
   }
   
   function numArrayAdd() public{
       numArray.push(num);
   }
   function showNumArray() public view returns(uint256){
       return numArray[0];
   }
   function updateArray() public {
       numArray[0] = num;
   }
   
}

👉 결과

  1. num 의 값은 89
  2. numArrayAdd 실행 => index 0의 값 : 89
  3. numMapAdd 실행 => (0 => 89) mapping


changeNum을 실행해 num의 값을 5로 변경한 후, 다시 Array, Mapping의 값을 확인해보았지만 이들의 값은 89로 변경되지 않았다. 이처럼 배열과 매핑은 그 당시 캡처값을 가지고 온다. 따라서 update를 반드시 해주어야 한다.


매핑과 배열을 업데이트 한 후, 다시 값을 조회해보니 5로 값이 변경이 되었다.


출처 및 참고 자료

profile
👩🏻‍💻 Backend Engineer, Contract Developer

0개의 댓글