pragma solidity ^0.4.0;
contract MappingTest{
//定义mapping idmapping代表地址与id映射到一起;namemapping代表id与姓名映射到一起
//id
mapping(address => uint) idmapping; //0x5B38Da6a701c568545dCfcB03FcB875f56beddC4 ==》 1
mapping(uint => string) namemapping;// 1 =》 张三 进行绑定
//注册总量
uint public sum = 0;
//用户只能注册一次账户
modifier control{
require(idmapping[msg.sender] == 0);
_;
}
function register(string name) public control{
//msg.sender代表当前合约的调用者
address account = msg.sender;
sum++;
//将合约的调用者的地址和注册总量id联系到一起
idmapping[account] = sum;
//当前用户的id与注册的名字绑定到一起
namemapping[sum] = name;
}
//通过关键字地址获取和他绑定在一起的id值
function getIdbyaddress(address are) public returns(uint){
return idmapping[are];
}
//通过id值获取和他绑定在一起的名字
function getNameById(uint id) public returns(string memory){
return namemapping[id];
}
}
29.Solidity-注册-使用modifie_2
于 2022-11-10 21:25:39 首次发布
本文介绍了一款使用Pragmasolidity 0.4.0的智能合约,详细讲解了contractMappingTest中的address-id映射、字符串-name映射以及用户注册控制功能。通过`control`修饰器确保用户仅能注册一次,并提供了获取和修改映射值的方法。
109

被折叠的 条评论
为什么被折叠?



