如何访问mapping内部struct中的元素并返回_isDeleted值
访问并返回Solidity映射中结构体的_isDeleted值方法
要读取并返回adminMembers映射里指定地址对应的_isDeleted值,只需编写一个读取状态的函数,步骤如下:
- 定义接收目标地址的函数,使用
view修饰符(仅读取链上状态,不消耗修改类gas) - 通过映射索引到对应地址的
adminMember结构体,直接访问并返回_isDeleted属性
完整代码示例:
struct adminMember{ address admin; bool _isDeleted; } mapping(address => adminMember) adminMembers; // 获取指定管理员的删除状态 function getAdminDeletedStatus(address targetAdmin) public view returns(bool) { return adminMembers[targetAdmin]._isDeleted; }
注意事项
- 如果目标地址从未被添加到映射中,Solidity会返回结构体的默认零值,此时
_isDeleted会是false - 若需要区分“未添加的地址”和“已添加但未删除的地址”,可以在
adminMember结构体中额外添加一个isRegistered布尔字段,初始化时设为true
内容的提问来源于stack exchange,提问作者S M
相关产品推荐
相关产品推荐

