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(),分别用于添加雇员和查看雇员。