Skip to content

数组

数组用来存储一组相同类型的数据,例如数字、字符串或结构体。

示例

下面是一个简单的 Solidity 代码示例,演示如何定义、初始化和访问一个动态数组:

solidity
pragma solidity ^0.8.0;

contract ArrayExample {
    uint[] public myArray;

    function addToArray(uint _value) public {
        myArray.push(_value);
    }

    function getElement(uint _index) public view returns (uint) {
        return myArray[_index];
    }
}

在这个合约中,我们定义了一个名为 ArrayExample 的合约,其中包含一个名为 myArray 的动态数组。我们还定义了两个函数:

  • addToArray:这个函数用于向数组中添加新的元素。它接受一个类型为 uint 的参数,并调用数组的 push 函数将其添加到数组的末尾。

  • getElement:这个函数用于获取数组中指定索引处的元素。它接受一个类型为 uint 的参数作为索引,并使用数组名和索引来返回相应位置的元素。

Solidity 中,动态数组可以通过 push 函数添加元素并动态扩展,也可以使用 new 关键字在数组定义时指定数组长度。

此外,Solidity 还支持静态数组,即在定义的时候必须明确指定数组长度,并且无法动态扩展。

以下是一个静态数组的例子:

solidity
pragma solidity ^0.8.0;

contract StaticArrayExample {
    uint[5] public myArray;

    function setElement(uint _index, uint _value) public {
        myArray[_index] = _value;
    }

    function getElement(uint _index) public view returns (uint) {
        return myArray[_index];
    }
}

在这个合约中,我们定义了一个名为 StaticArrayExample 的合约,其中包含一个名为 myArray 的静态数组。我们还定义了两个函数:

  • setElement:这个函数用于在指定的索引处设置数组元素。它接受两个类型为 uint 的参数,一个用于指定数组索引,另一个用于设置元素值。

  • getElement:这个函数用于获取数组中指定索引处的元素。它接受一个类型为 uint 的参数作为索引,并使用数组名和索引来返回相应位置的元素。