我刚刚编写了一个简单的代码来测试openzeplin Safemath库。我正在使用最新版本的remix ide并针对^ 0.5.0进行编译。 Remix正在使用0.5.0_commit.1d4f565a编译器 环境是JavaScript VM EVM版本是编译器的默认值
add函数似乎在下面给出的代码中不起作用
我已经尝试过x.sub(1),它会按预期方式引发异常,我还尝试过将x初始化为不同的值,但仍然无法正常工作。
pragma solidity ^0.5.0;
import "./SafeMath.sol";
contract SimpleStorage {
using SafeMath for uint;
uint x;
event incremented(uint x);
constructor() public{
x=0;
}
function increment() public {
x.add(1);
emit incremented(x);
}
function get() external view returns (uint) {
return x;
}
}
预期输出是每次调用该函数时增加1,但每次均获得相同的值。发射也显示相同的值。
答案 0 :(得分:0)
好吧,这是你的错误:)
尝试使用x.add(1)
而不是x = x.add(1)
。添加函数不在位,返回新值,您需要将新值分配给x
。