在最近看到的Solidity语言里面的数组的定义和之前学的稍有不同,记录一下。

下面是在单个合约里的情形,这些数组只能在test合约中被访问。

pragma solidity ^0.4.19;

contract test {
	// 固定长度为2的静态数组:
	uint[2] fixedArray;
	// 固定长度为5的string类型的静态数组:
	string[5] stringArray;
	// 动态数组,长度不固定,可以动态添加元素:
	uint[] dynamicArray;
}

然后是公共数组,这个数组可以被test合约之外的其他合约读取

contract test {
	Person[] public people;
}

另外,solidity里的数组有一个push方法,效果和python中的append类似

uint[] public a;
a.push(1);
a.push(2);
a.push(3);
// 此时a=[1, 2, 3]