[개발] 솔리디티 기초 - mapping

안녕하세요 @realmankwon입니다.

요즘 스마트 컨트랙트 기초문법을 차근차근 보고 있는 중입니다.
기존에는 걍 분석하고 바로 적용을 하긴해봤지만 확실하게 이해하기 보다는 대충 그렇겠지라고 생각을 했었습니다.
이제는 시간적 여유가 생겨서 꼼꼼하게 보는 중입니다.
기존의 언어와 다른 것들을 정리하면서 공부하는 것이 좋을 듯 하여 기록을 남기려고 합니다.

mapping



C#의 Hashtable, JAVA의 HashMap 과 동일한 기능을 하는 키워드입니다.
둘다 Key, Value 를 입력하여 Unique 한 Key 로 중복을 피하여 저장하고 빠르게 검색하기 위해서 사용합니다.
솔리디티에서는 이것을 mapping 으로 사용하고 있습니다.
문법은 다음과 같습니다.

mapping ([Key Type[ => [Value Type]) [public, private, internal, external] 변수명



예를들어 public 변수로 upvu 에 address 별로 uint값을 저장하고 싶다면 다음과 같습니다.

mapping (address => uint) public upvu;



mapping 은 다른 언어와 마찬가지로 배열과 같이 많은 값들을 저장할 수 있는 자료구조입니다.
형태는 다르지만 다른 언어에서 비슷한 기능을 하는 것에 대입을 하니 이해는 좀 빨리 되는 것 같습니다.
앞으로도 꾸준히 스마트 컨트랙트 문법에 익숙해져야겠습니다.

Sort:  

@realmankwon transfered 30.000 KRWP to @krwp.burn. voting percent : 90.32%, voting power : 42.64%, steem power : 1854531.00, STU KRW : 1200.
@realmankwon staking status : 14477.519 KRWP
@realmankwon limit for KRWP voting service : 14.477 KRWP (rate : 0.001)
What you sent : 30.000 KRWP
Refund balance : 15.523 KRWP [57944415 - 2f735c5a52cc2c83c9f80772d4ccc180ac064ea8]