#blockchain #ethereum #solidity #ether
#блокчейн #ethereum #solidity #эфир
Вопрос:
Это мой код, я хочу знать причину, по которой я не могу изменить значение в переменной a. Не могли бы вы сообщить мне причину или какую-либо информацию из solidity doc?
// SPDX-License-Identifier: MIT
pragma solidity >=0.8.0 <0.9.0;
contract simple {
uint public a = 3;
a = 16; // error occurred : parser Error expected identifier but got '='
}
Комментарии:
1. Вы уже пробовали / проверяли это: geeksforgeeks.org/solidity-variables
Ответ №1:
Вы пытаетесь изменить данные в декларативной части кода контракта. Поместите изменение в конструктор контракта или функцию.
// SPDX-License-Identifier: MIT
pragma solidity >=0.8.0 <0.9.0;
contract simple
{
uint public a = 3;
constructor()
{
a = 16;
}
function changeData() public
{
a = 16;
}
}
Ответ №2:
Вам нужна функция в контракте для изменения значений. Вы можете добиться этого, объявив функцию как view
тип. Например.
contract Demo {
uint number;
function set(uint _number) public {
number = _number 1;
}
}