Lib2DArrayForUint256.sol¶
Lib2DArrayForUint256提供了Uint256二维数组的相关操作,包括增加新元素,删除元素,修改值,查找值,合并扩展数组等操作。
使用方法¶
首先需要通过import引Lib2DArrayForUint256类库,然后通过”.”进行方法调用,如下为调用getValue方法的例子:
pragma solidity >=0.4.25 <0.6.11;
import "./Lib2DArrayForUint256.sol";
contract test {
uint256[][] private array;
function f() public returns(uint256) {
array = new uint256[][](0);
array = [[1,2],[3,4]];
return Lib2DArrayForUint256.getValue(array,row,col);
}
}
API列表¶
编号 | API | API描述 |
---|---|---|
1 | addValue(uint256[][] storage array,uint256[] value) | 对一个二维数组添加一个数组元素 |
2 | getValue(uint256[][] storage array, uint256 row, uint256 col) internal returns (uint256) | 查找指定位置的值 |
3 | setValue(uint256[][] storage array, uint256 row, uint256 col, uint256 val) internal returns (uint256[][]) | 修改指定位置的值 |
4 | firstIndexOf(uint256[][] storage array, uint256 val) internal returns (bool, uint256, uint256) | 查找第一个匹配的元素的位置 |
5 | removeByIndex(uint256[][] storage array, uint256 index) internal returns(uint256[][]) | 根据索引删除数组元素 |
6 | extend(uint256[][] storage array1, uint256[][] storage array2) internal returns(uint256[][]) | 合并两个二维数组,将第二个数组合并在第一个数组上 |
API详情¶
返回值¶
- 无
实例¶
pragma solidity >=0.4.25 <0.6.11;
import "./Lib2DArrayForUint256.sol";
contract test {
uint256[][] private array;
function f() public {
array = new uint256[][](0);
uint256[] val = [1,2];
Lib2DArrayForUint256.addValue(array,val);
}
}
2. getValue 方法¶
查找并返回指定位置的值,若位置越界不合法则退出
参数¶
- array:二维数组
- row:值所在行
- col:值所在列
返回值¶
- uint256:查找到的值
实例¶
pragma solidity >=0.4.25 <0.6.11;
import "./Lib2DArrayForUint256.sol";
contract test {
uint256[][] private array;
function f() public returns(uint256) {
array = new uint256[][](0);
uint256[] val = [1,2];
Lib2DArrayForUint256.addValue(array,val);
return Lib2DArrayForUint256.getValue(array,0,0);
}
}
3. setValue 方法¶
修改指定位置的值,并返回修改后的二维数组,若位置越界不合法则退出
参数¶
- array:二维数组
- row:所在行
- col:所在列
- val:修改为该值
返回值¶
- uint256[][]: 修改后的二维数组
实例¶
pragma solidity >=0.4.25 <0.6.11;
import "./Lib2DArrayForUint256.sol";
contract test {
uint256[][] private array;
function f() public returns(uint256[][]) {
array = new uint256[][](0);
uint256[] val = [1,2];
Lib2DArrayForUint256.addValue(array,val);
return Lib2DArrayForUint256.setValue(array,0,0,100);
}
}
4. firstIndexOf 方法¶
查找第一个匹配元素的位置,若存在则返回(true,row,col),若不存在则返回(false,0,0)
参数¶
- array:二维数组
- val:待查找的元素
返回值¶
- bool:当查找到元素,则返回true,反之返回false
- uint256:元素所在行
- uint256:元素所在列
实例¶
pragma solidity >=0.4.25 <0.6.11;
import "./Lib2DArrayForUint256.sol";
contract test {
uint256[][] private array;
function f() public returns(bool,uint256,uint256) {
array = new uint256[][](0);
uint256[] val = [1,2];
Lib2DArrayForUint256.addValue(array,val);
return Lib2DArrayForUint256.firstIndexOf(array,1);
}
}
5. removeByIndex 方法¶
removeByIndex方法用于根据索引删除数组元素。当索引越界时退出。
参数¶
- array:二维数组
- index:待删除的一维数组索引
返回值¶
- uint256[][]: 删除指定元素后的数组
实例¶
pragma solidity >=0.4.25 <0.6.11;
import "./Lib2DArrayForUint256.sol";
contract test {
uint256[][] private array;
function f() public returns(uint256[][]) {
array = new uint256[][](0);
uint256[] val = [1,2];
uint256[] val2 = [3,4,5];
Lib2DArrayForUint256.addValue(array,val);
return Lib2DArrayForUint256.removeByIndex(array,1);
}
}
6. extend 方法¶
合并两个二维数组,
参数¶
- array1:二维数组
- array2:二维数组
返回值¶
- uint256: 合并后的数组
实例¶
pragma solidity >=0.4.25 <0.6.11;
import "./Lib2DArrayForUint256.sol";
contract test {
uint256[][] private array1;
uint256[][] private array2;
function f() public returns(uint256[][]) {
array1 = [[1,2],[3,4]];
array2 = [[5,6],[7,8]];
return Lib2DArrayForUint256.extend(array1,array2);
}
}