mapping이란?
이번시간에는 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 이름 [] << 이런식으로 대괄호를 통해 접근이 가능합니다.