为什么不能在 solidity 中重新分配合约级别的值?
Why is it not possible to reassign the value in the contract level in solidity?
这是我的代码,
我想知道我无法更改变量 a 中的值的原因。
能否请您告诉我原因或来自 solidity 文档的任何信息?
// 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 '='
}
您正在尝试更改合约代码声明部分的数据。将更改放入合约构造函数或函数中。
// 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;
}
}
您需要合同中的函数来修改值。您可以通过将函数声明为 view
类型来实现此目的。例如
contract Demo {
uint number;
function set(uint _number) public {
number = _number + 1;
}
}
这是我的代码, 我想知道我无法更改变量 a 中的值的原因。 能否请您告诉我原因或来自 solidity 文档的任何信息?
// 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 '='
}
您正在尝试更改合约代码声明部分的数据。将更改放入合约构造函数或函数中。
// 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;
}
}
您需要合同中的函数来修改值。您可以通过将函数声明为 view
类型来实现此目的。例如
contract Demo {
uint number;
function set(uint _number) public {
number = _number + 1;
}
}