solidity入门

Solidity 是以太坊智能合约开发的主要编程语言,支持多种数据类型,其中数组是一种非常常用和灵活的数据结构。在本教程中,我们将深入探讨 Solidity 中数组的各种类型、创建规则以及常见操作。

### 固定长度数组

固定长度数组在声明时指定了数组的长度,一旦创建后,其大小就不能更改。固定长度数组使用 `T[k]` 格式进行声明,其中 `T` 是元素类型,`k` 是数组长度。

```solidity
uint[8] array1;      // 8个uint类型的元素
bytes1[5] array2;    // 5个bytes1类型的元素
address[100] array3; // 100个address类型的元素
```

---

### 可变长度数组

可变长度数组在声明时不指定长度,大小可以动态调整。可变长度数组使用 `T[]` 格式进行声明。

```solidity
uint[] array4;      // 可变长度的uint数组
bytes1[] array5;    // 可变长度的bytes1数组
address[] array6;   // 可变长度的address数组
bytes array7;       // 可变长度的bytes数组
```

**注意**:`bytes` 是一个特殊的数组类型,不需要使用 `[]`。

---


### 数组创建规则

- **动态数组在 memory 中的创建**:

uint[] memory array8 = new uint[](5); // 创建一个长度为5的uint数组
bytes memory array9 = new bytes(9);   // 创建一个长度为9的bytes数组
```

- **数组字面常数(Array Literals)**:

使用数组字面常数可以更直观地初始化数组。


g([uint(1), 2, 3]);

 ### 数组操作

数组提供了一系列有用的操作方法:

- **length**:获取数组的长度。

- **push()**:向动态数组和 `bytes` 类型数组的末尾添加元素。

- **push(x)**:向动态数组和 `bytes` 类型数组的末尾添加特定元素 `x`。

- **pop()**:移除动态数组和 `bytes` 类型数组的最后一个元素。

```solidity
array4.push(10);          // 向 array4 添加元素 10
array5.push(bytes1(2));   // 向 array5 添加 bytes1 类型的元素 2
array6.push(address(0x0000000000000000000000000000000000000003)); // 向 array6 添加地址
```

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值