《三体》中常常谈到一个词“降维打击”,这里的维指的是一种度量。比如在三维的空间里,加上时间,时空互相联系,就构成了四维空间。而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**
}
}
下面是本次实验所配套的视频教程:
