【Solidity】Array的用法

// SPDX-License-Identifier: GPL-3.0

pragma solidity >=0.7.0 <0.9.0;

contract test {
    uint[] internal nums = [1,2,3];
    uint public numsLength = 0;
    uint[3] public fixedNums = [4,5,6];

    function examples() external {
       nums.push(4);//在nums后面加入4  => [1,2,3,4]
       nums[2] = 99;//在nums的key2的值改成99  => [1,2,99,4]
       delete nums[0];//把nums的key0给删除了,key0的原始值就是0  => [0,2,99,4]
       numsLength = nums.length;//获取array的长度,就算是删除了key0长度还是不变的  => 4
       nums.pop();//把nums的最后的值给去除了,所以长度会是3  => [0,2,99]

       //fixedNums.pop();//固定长度的array,无法改值,无法pop(), 无法push()

       //在function内创建array由于没有存进链内,所以必须在内存里创建array
       uint[] memory a = new uint[](1);//创建动态长度的array
       a[0] = 123;
       nums = a;//把nums的array整个改成了a的值
    }

    function checkNums() external view returns(uint[] memory) {
        return nums;
    }
}

Loading

Facebook评论