Solidity

mapping이란?

SunCoding 2023. 10. 21. 19:34

이번시간에는  mapping 에 대해서 알아보도록 합시다.

 

mapping은 key와 value로 이루어져있습니다.

 

여기서 key와 value가 뭘까요?

 

예를들어 마트에있는 과자로 예시를 들어봅시다

 

꼬깔콘이 key 라면 꼬깔콘의 가격은 value입니다.

 

code를 한번 봅시다.

contract lecture {


    mapping(string => uint256) item;


    function setItem(string memory _item, uint256 _price) public  {
        item[_item] = _price;
    }   

    function getItem(string memory _item) public view returns(uint256) {
        return item[_item];
    }



  
}

 

 

여기 item이라는 mapping이 있습니다

 

key로 string을 받고 값은 uint256을 가지고있습니다.

 

setItem이라는 함수는 item이라는 mapping에 키 와 값을 던져주는 함수입니다.

 

그럼 한번 setItem을 배포해볼까요?

 

 

(배포 후)

 

 

여기 Key에는 Mouse가 들어가있고  value에는 1000원이 들어있습니다.

 

즉 이제 Item이라는 Mapping에  key : mouse  / value : 1000 이라는 값이 들어가있습니다.

 

직접 확인해볼까요?

 

getItem이라는 함수에는 mapping에 값을 읽어오는 함수입니다

 

item[_item]  이 코드는 item 이라는 Mapping에 파라미터인 _item을 던져주고 있습니다.

 

여기서 우리는 _item을 mousef라고 지정했으니 

 

결국은 item[mouse] 라는 Key값을 뎐져주어 mouse의 값인 1000원을 반환받는 코드입니다.

 

getItem함수를 배포해 봅시다.

 

(배포 후)

 

mouse라는 Key값을 주어 1000이라는 값을 얻어올 수 있습니다.

 

 

즉 정리하자면

 

mapping은 key 와 Value로 이루어져있고

 

접근할때는  mapping 이름 [] << 이런식으로 대괄호를 통해 접근이 가능합니다.