我有这个坚固性映射
mapping (string => Ticket) public myMapping;
Run Code Online (Sandbox Code Playgroud)
我想检查是否myMapping[key]存在。我该如何检查?
没有直接的方法来检查映射是否具有特定的键。但您可以检查映射属性是否有值。以下示例认为 是Ticket具有某些属性的结构。
pragma solidity >=0.4.21 <0.6.0;
contract Test {
struct Ticket {
uint seatNumber;
}
mapping (string => Ticket) myMapping;
function isExists(string memory key) public view returns (bool) {
if(myMapping[key].seatNumber != 0){
return true;
}
return false;
}
function add(string memory key, uint seatNumber) public returns (bool){
myMapping[key].seatNumber = seatNumber;
return true;
}
}
Run Code Online (Sandbox Code Playgroud)
整个存储空间虚拟初始化为0(没有未定义)。因此,您必须将该值与您的类型的 0 值进行比较。例如,mapping[key] == address(0x0) 或 mapping[key] = bytes4(0x0)。
| 归档时间: |
|
| 查看次数: |
3383 次 |
| 最近记录: |