我正在寻找一种增加地图价值的方法,这是我的代码
import "@stdlib/deploy";
contract Holders with Deployable {
holders: map<Address, Int>;
owner: Address;
init() {
self.owner = sender();
}
receive("start") {
let amount: Int? = self.holders.get(sender());
self.holders.set(sender(), amount + 100);
}
get fun balance(key: Address): Int? {
return self.holders.get(key);
}
}
我必须输入“Int?” amount 变量的状态,如果我不输入它会给出错误,但如果我输入“Int?”添加“金额 + 100”时会出现错误。
有没有办法增加地图的价值?
如果您确定该键存在于地图中,您可以使用
!!
运算符将 Int?
转换为 Int
let amount: Int? = self.holders.get(sender());
if (amount != null) {
self.holders.set(sender(), amount!! + 100);
}
应该可以正常工作