Сохраняется ли "uint " в этой функции в хранилище?

Я немного запутался по поводу идентификатора uint в функции запуска.

Я понимаю, что uint "nextCampaignId" является глобальной переменной, и поэтому сделанные в ней изменения будут сохранены в хранилище; Это означает, что с каждой новой созданной кампанией будет увеличиваться "nextCampaignId", и поэтому он не может использоваться для определения идентификационных номеров ранее созданных кампаний. Следовательно, нам нужно присвоить его значение новому идентификатору uint внутри функции.

Однако я думал, что целые числа, объявленные в функциях, не сохраняются в хранилище. Не будет ли этот идентификационный номер потерян после завершения функции? Функция просто возвращает идентификатор (в пользовательский интерфейс), а затем забывает его? Но тогда как мы можем получить конкретные данные кампании позже?

uint nextCampaignId;
mapping(uint256 => CampaignData) campaigns;

// Start a new campaign.
function start(address recipient, uint256 goal, uint256 deadline) returns 
(uint id) {
    var campaign = campaigns[nextCampaignId];
    campaign.recipient = recipient;
    campaign.goal = goal;
    campaign.deadline = deadline;
    nextCampaignId ++;
    id = nextCampaignId;
}

0 ответов

Другие вопросы по тегам