견고하게 매핑
2623 단어 solidityblockchainweb3mapping
mapping(key => value) <access specifier> <name>;
키는 값에 매핑됩니다. 데이터는 매핑에 저장되지 않고 해시 값에만 저장됩니다.
uint
, bytes
, a string
, an mapping
및 a a dynamically sized array
를 제외한 contract
, enum
, struct
와 같은 내장 유형. mapping
, struct
, arrays
를 포함한 모든 유형길이가 없으며 매핑을 반복할 수 없습니다.
예를 들어
// mapping declaration
mapping(uint => string )public people
// update mapping
people[10] = 'Mark'; // assigns a value
people[12] = 'Andrew';
// reading values
people[1] // reads a value
people[unknown_key] //will return the default value of the type, i.e '' for string or 0 for unint
배열을 맵 값으로 할당
배열을 지도에 대한 값 유형으로 할당하고 아래와 같이 배열에 액세스할 수 있습니다.
contract Mapping {
mapping(address => uint[]) scores;
function manipulateArrayMap() external {
scores[msg.sender].push(1); //assign a value;
scores[msg.sender].push(2); //assign another element
scores[msg.sender][0]; //access the element in the map array
scores[msg.sender][1] = 5; //update an element in the map array in index 1
delete scores[msg.sender][0]; //delete the element in the index 0 of the map array
}
}
다른 맵을 맵 값으로 할당
또한 다른 맵을 맵 값으로 할당하고 아래와 같이 맵에 액세스하는 것처럼 액세스할 수 있습니다.
contract Mapping {
mapping(address => uint) balances;
mapping(address => mapping(address => bool)) approved;
function manipulateMapOfMap(spender) external {
approved[msg.sender][spender] = true //assign a value to the approved map
approved[msg.sender][spender]; //get the value of the map
delete approved[msg.sender][spender] //delete the reference
}
}
일반적인 사용 사례
고유한 이더리움 주소를 연결된 고유한 값과 연결
Reference
이 문제에 관하여(견고하게 매핑), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/tawseef/mapping-in-solidity-63텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)