Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- ERC-721
- 이더리움
- web3.js
- 카카오페이지클론
- 비트코인
- 정보처리기사실기요약
- Non-Blocking
- solidity
- 정보처리기사
- 정보처리기사실기
- it5
- 콜백함수this
- it5분잡학사전
- 2021정보처리기사실기
- ERC721
- ETH
- github
- 솔리디티
- git
- React
- 노개북
- 노마드코더
- 클레이튼
- 페이지클론
- Klaytn
- 블록체인
- blockchain
- node.js
- npm
- 카카오홈페이지클론
Archives
- Today
- Total
Be lazy, Be crazy
Mapping && Iterable Mapping 본문
728x90
반응형
저번시간에는 반복문과 반복문에서 값을 제거하는 방식을 공부했습니다. 전 post를 참고하시면 됩니다.
이번 post에서는 간단하게 자주사용하는 mapping과 이 mapping을 읽어오는 방식에 대해서 공부를 해보았습니다.
// Mapping
// How to declare a mapping (simple and nested);
// Set, get, delete
contract Mapping {
mapping(address => uint) public balances;
mapping (address => mapping(address => bool)) public isFriend;
function examples() external {
balances[msg.sender] = 123;
uint bal = balances[msg.sender];
uint bal2 = balances[address(1)]; // 0
balances[msg.sender] += 456; // 123 + 456;
delete balances[msg.sender]; // delete는 기본값을로 변환시킨다. 고로 0이된다.
isFriend[msg.sender][address(this)] = true;
}
}
contract IterableMapping {
mapping(address => uint) public balances;
mapping(address => bool) public inserted;
address[] public keys;
function set(address _key, uint _val) external {
balances[_key] = _val;
if(!inserted[_key]){
inserted[_key] = true;
keys.push(_key);
}
}
function getSize() view external returns(uint){
return keys.length;
}
function first() view external returns(uint){
return balances[keys[0]];
}
function last() view external returns(uint){
return balances[keys[keys.length-1]];
}
function get(uint i) view external returns(uint){
return balances[keys[i]];
}
}
나는 mapping을 JS에서 객체와 같은형태로 이해를 했다.
JS에서 객체형태의 값을 변환 할때 const test = {name: 'jun'} 을 test.name = 'ahn' 변경이 가능하듯이
mapping도 비슷한 형태로 mapping(address => uint) public balances; balances[address(1)] = 123; 변경 가능
이렇듯 사용하는 방식은 다르지만 key-value로 저장하는 형식은 동일하다고 생각하고 공부를 진행했다.
반응형
'BlockChain > 솔리디티' 카테고리의 다른 글
STRUCT - 구조체 (0) | 2022.05.07 |
---|---|
Array Remove (0) | 2022.03.22 |
Array (0) | 2022.03.15 |
FunctionOutputs (0) | 2022.03.14 |
FunctionModifier (1) | 2022.03.13 |
Comments