【Array】

一個程式語言中最經典的資料結構莫過於array 了,陣列的性質如下:

  1. 擁有兩個成員:.length, .push(element)

  2. 可為固定或動態的長度,取決於我們是否宣告陣列的長度。

  3. T[][5] 是五個動態陣列長度的組合(reverse notation)

pragma solidity ^0.8.11;

contract MyArray {
    uint256[] arr_1;
    uint256[] arr_2 = [3,2,4];
    uint256[5] arr_3;
    uint[][] array2D = [ [1,2,3], [4,5,6] ];
    
    function getValueOfIndex(uint256 _index) public view returns (uint256) {
        return arr_2[_index];
    }
    
    // 在一個陣列的最後加入一個元素
    function addToArray(uint256 _value) public  {
        arr_2.push(_value);
    }
    
    // 調用一個陣列的長度
    function valueCount() public view returns(uint) {
        return arr_3.length;
    }
}

動態記憶體配置

uint[] memory arr = new uint[](3);

如果我們訪問了超過記憶體的值,Solidity 不會向其他語言一樣丟 Runtime Error 回來,而是會返回該型態的預設值。

Last updated

Was this helpful?