mapping是一种用于存储k/v的数据类型,它可以建立映射关系,将一个值映射到另一个值。它的k可以是任何类型。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| pragma solidity ^0.8.0;
contract lesson10{
struct Employee { address addr; uint amount; }
uint num; mapping(uint=>Employee) public employeeMap;
function newEmployee(address addr, uint amount) public returns (uint) { uint employeeID = num++; // 创建一个结构体实例,存储在storage ,放入mapping里 employeeMap[employeeID] = Employee(addr, amount); }
function showEmployee(uint id) view public returns(Employee memory){ return employeeMap[id]; } }
|
这个合约定义了一个 mapping 变量 employeeMap ,它将雇员ID映射到雇员信息。它还定义了两个函数 newEmployee() 和 showEmployee(),分别用于添加雇员和查看雇员。