固定长度的数组(Arrays)
固定长度类型数组的声明
pragma solidity ^0.4.4;
contract C {
// 数组的长度为5,数组里面的存储的值的类型为uint类型
uint [5] T = [1,2,3,4,5];
}
通过length方法获取数组长度遍历数组求总和
pragma solidity ^0.4.4;
contract C {
// 数组的长度为5,数组里面的存储的值的类型为uint类型
uint [5] T = [1,2,3,4,5];
// 通过for循环计算数组内部的值的总和
function numbers() constant public returns (uint) {
uint num = 0;
for(uint i = 0; i < T.length; i++) {
num = num + T[i];
}
return num;
}
}
- 尝试修改T数组的长度
pragma solidity ^0.4.4;
contract C {
uint [5] T = [1,2,3,4,5];
function setTLength(uint len) public {
T.length = len;
}
}
PS:声明数组时,一旦长度固定,将不能再修改数组的长度。
尝试修改T数组内部值
pragma solidity ^0.4.4;
contract C {
uint [5] T = [1,2,3,4,5];
function setTIndex0Value() public {
T[0] = 10;
}
// 通过for循环计算数组内部的值的总和
function numbers() constant public returns (uint) {
uint num = 0;
for(uint i = 0; i < T.length; i++) {
num = num + T[i];
}
return num;
}
}
T
数组初始的内容为[1,2,3,4,5]
,总和为15
,当我点击setTIndex0Value
方法将第0个
索引的1
修改为10
时,总和为24
。
PS:通过一个简单的试验可证明固定长度的数组只是不可修改它的长度,不过可以修改它内部的值,而