《三体》中常常谈到一个词“降维打击”,这里的维指的是一种度量。比如在三维的空间里,加上时间,时空互相联系,就构成了四维空间。而Solidity里的二维数组,“维”单指的是空间上的变化,而没有时间的限定。

实验目的

1. 掌握动态二维数组与固定二维数组的异同点。

2. 明白如何改变二维数组的元素并返回。

实验要求

1. 请查看上面的代码,按照注释1,2,3的要求补充好代码。思考二维数组与一维数组或者多维数组的区别。

2. 请先思考能否直接改变动态二维数组的长度,再将函数changeLength方法体里面的代码注释去掉,编译检查结果。

3. 请你按注释5,6的要求,补充好代码。

以下是本次实验所使用到的测试代码,请使用remix编辑器完成该实验

// SPDX-License-Identifier: GPL-3.0
pragma solidity ^0.8.0;
contract DynamicTwoArray{
uint[][] grade=[[1,2],[3,4],[5,6]];
//1.返回数组grade。
    function getContent() public view returns(uint[][] memory){
        //**1**
}
//2.返回数组grade的长度和自定义二维数组的长度。
function getLength(uint twodim) public view returns(uint,uint){
//**2**
}
//3.遍历数组的元素求和。
    function add() public view returns(uint){
        //**3**
}
//4.是否可以直接改变数组的长度?
function changeLength()public {
//grade.length = 5;
}
//5.将grade数组的第一个二维数组的第一个元素改成100。(注意数组的起始数字为0)
    function changeConetent()public{
        //**5**
}
//6.返回更改后的数组元素。
    function getcahngeContentresult() public view returns(uint){
    	//**6**
    }
}

下面是本次实验所配套的视频教程: