Сохраняется ли "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;
}