solidity数组练习题
时间: 2024-11-28 19:18:30 浏览: 26
在Solidity(Ethereum智能合约编程语言)中,数组是一种常用的数据结构,用于存储一组相同类型的值。下面是一些关于Solidity数组的练习题目示例:
1. 创建一个名为`UserCollection`的结构体,包含一个整数数组`balances`,表示每个用户的余额。
```solidity
struct UserCollection {
uint256[] balances; // 存储用户余额的数组
}
```
2. 定义一个函数`addBalance()`,接受一个地址和金额,将该地址对应的`balances`元素增加相应的数值。
```solidity
function addBalance(address user, uint256 amount) public {
require(users[user].exists, "User does not exist");
users[user].balances.push(amount); // 添加到用户数组的末尾
}
```
3. 实现一个函数`getUserBalance(address)`,返回指定地址的用户当前余额总和。
```solidity
function getUserBalance(address user) public view returns (uint256) {
return users[user].balances.reduce(uint256(0), _add);
}
// 辅助函数用于计算数组元素之和
function _add(uint256 a, uint256 b) internal pure returns (uint256) {
return a + b;
}
```
阅读全文