solidity智能合约[16]-固定长度数组
原创
©著作权归作者所有:来自51CTO博客作者gopher梦工厂的原创作品,请联系作者获取转载授权,否则将追究法律责任
数组
内存中的一片连续区域
定义
1 2
| int[7] math; bytes2[3] bytesTest;
|
赋值
1
| uint[5] public grade =[1,2,3,4,5];
|
修改内容
1 2 3
| function init2() public { bytesTest[1] = 0x6a6f; }
|
返回数组
1 2 3 4
| function getArray2() public view returns(bytes2[3]){
return bytesTest; }
|
获取数组长度
1 2 3 4
| function getlength() public view returns(uint){ return grade.length;
}
|
数组遍历求和
1 2 3 4 5 6 7
| function add() public view returns(uint){ uint sum= 0 ; for(uint i = 0;i<5;i++){ sum+=grade[i]; } return sum; }
|
错误代码
固定数组不能修改大小和内容
1 2 3 4 5 6 7 8 9 10 11
|
// function getlength2() public{ // grade.length =90;
// }
// function pushelement() public {
// grade.push(90); // }
|
完整例子
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52
| pragma solidity ^0.4.23;
contract arrayTest{
uint[5] public grade =[1,2,3,4,5];
int[7] math; bytes2[3] bytesTest;
function init2() public { bytesTest[1] = 0x6a6f; }
function getArray2() public view returns(bytes2[3]){
return bytesTest; } function init() public { grade[0] = 100; grade[1] = 200; }
function getArray() public view returns(uint[5]){
return grade; }
function add() public view returns(uint){ uint sum= 0 ; for(uint i = 0;i<5;i++){ sum+=grade[i]; } return sum; }
function getlength() public view returns(uint){ return grade.length;
}
}
|
![1542893786418723.png solidity智能合约[16]-固定长度数组_区块链](http://s2.51cto.com/images/20181122/1542893786418723.png?x-oss-process=image/watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_30,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=/resize,m_fixed,w_1184)