mapping值的判斷問題
在Java這類編程語言中,咱們能夠得到Map裏面的值而後與null或空來進行判斷該key對應的值是否爲空。但是在solidity中貌似並無提供相似的判斷。那麼咱們若是來進行mapping值的判斷呢。編程
mapping值的判斷解決方案
若是mapping值裏面存的爲struct,那麼只需在struct內設置一個字段,用來表示改結構體是否已經被賦值。若是mapping的值爲地址則可經過與0地址比較來判斷是否優質。微信
前一種狀況並不存在面向編程語言中的空指針異常的問題。app
如下爲示例代碼:編程語言
pragma solidity ^0.5.10; contract TestCheckNullStruct{ struct User{ uint name; bool isUsed; } mapping(address => User) users; mapping(uint => address) addresses; function isExistEntry(address _addr) public view returns(bool){ return users[_addr].isUsed; } function isExistAddress(uint _key) public view returns(bool){ return addresses[_key] != address(0); } }
微信公衆號
更多職場經驗、認知提高等知識分享,請關注微信公衆號:程序新視界(ID:ershixiong_see_world)ui