乐闻世界logo
搜索文章和话题

How can you map addresses to booleans in Solidity?

4 个月前提问
4 个月前修改
浏览次数15

1个答案

1

在Solidity中,将地址映射到布尔值可以使用mapping关键字来实现。映射是一种将键与值关联起来的数据结构,Solidity中的mapping类型允许你定义键的类型和值的类型。在我们的案例中,键是地址(address),值是布尔值(bool)。

以下是如何声明和使用这样的映射的一个简单示例:

solidity
// 指定编译器版本 pragma solidity ^0.8.0; contract AccessControl { // 创建一个映射,它将地址映射到布尔值 mapping(address => bool) private accessList; // 函数用于设置地址的访问权限 function setAccess(address _addr, bool _hasAccess) public { accessList[_addr] = _hasAccess; } // 检查指定地址是否有访问权限 function checkAccess(address _addr) public view returns (bool) { return accessList[_addr]; } }

在这个例子中,AccessControl合约包含了一个名为accessList的映射,其中键是address类型,值是bool类型。此映射用于存储不同地址的访问权限状态。

  • setAccess函数接受两个参数:一个地址和一个布尔值。它将指定地址的访问权限设置为提供的布尔值。
  • checkAccess函数接受一个地址作为参数,并返回该地址是否具有访问权限(truefalse)。

这种类型的映射在创建访问控制系统、投票系统、状态跟踪等多种应用中非常有用。

2024年7月21日 19:45 回复

你的答案