0
아무도 어떻게 mapping
이 작동하고 왜 정확히 사용되는지 설명 할 수 있습니까? 배열과 마찬가지로 항목 모음입니다. 나는 단호한 경험이 없다, 나는 지금 막 시작하고있다. 견고성 공식 문서 페이지에서이 코드를 발견했습니다.매핑이 어떻게 견고하게 작동하고 다른 대중 언어의 다른 개념과 유사하게 매핑됩니까
pragma solidity ^0.4.11;
Contract CrowdFunding {
// Defines a new type with two fields.
struct Funder {
address addr;
uint amount;
}
struct Campaign {
address beneficiary;
uint fundingGoal;
uint numFunders;
uint amount;
mapping (uint => Funder) funders;
}
uint numCampaigns;
mapping (uint => Campaign) campaigns;
function newCampaign(address beneficiary, uint goal) returns (uint campaignID) {
campaignID = numCampaigns++; // campaignID is return variable
// Creates new struct and saves in storage. We leave out the mapping type.
campaigns[campaignID] = Campaign(beneficiary, goal, 0, 0);
}
function contribute(uint campaignID) payable {
Campaign storage c = campaigns[campaignID];
// Creates a new temporary memory struct, initialised with the given values
// and copies it over to storage.
// Note that you can also use Funder(msg.sender, msg.value) to initialise.
c.funders[c.numFunders++] = Funder({addr: msg.sender, amount: msg.value});
c.amount += msg.value;
}
function checkGoalReached(uint campaignID) returns (bool reached) {
Campaign storage c = campaigns[campaignID];
if (c.amount < c.fundingGoal)
return false;
uint amount = c.amount;
c.amount = 0;
c.beneficiary.transfer(amount);
return true;
}
}
좋은 설명. 또한, 여기에 매핑이 설명되어 있습니다 : https://ethereum.stackexchange.com/questions/9893/how-does-mapping-in-solidity-work Solidity의 매핑 내부에 매핑이 가능하다는 것을 추가하고 싶습니다. ;) –