注:以下代码来源于b站上面的基于以太坊的智能合约开发教程【Solidity】链接:https://www.bilibili.com/video/BV1St411a7Pk?p=34
一、 int数组内容1(定义数组,修改数组元素,扩张动态数组)
1.代码
//指定编译器版本,版本标识符
pragma solidity >=0.4.0;
contract fixArray
{
uint[] arr=[1,2,3,4,5];//定义数组arr
//修改数组的第二个和第三个元素
function changeArray() public
{
arr[1]=100;
arr[2]=200;
}
//获取数组
function getArray() public view returns(uint[] memory)
{
return arr;
}
//求数组的数字和
function getArrayCount() public view returns(uint)
{
uint grade=0;
for(uint i=0;i<5;i++)
{
grade+=arr[i];
}
return grade;
}
//求数组的长度
function getlength() public view returns(uint)
{
return arr.length;
}
//改变数组的长度
//注:如果要改变数组的长度,数组在初始化的时候不应该是定义好的空间,例如: uint[5] arr=[1,2,3,4,5];这样子会报错,
//应该 uint[] arr=[1,2,3,4,5];这样才是对的
function changeLength() public
{
arr.length=1;
}
//添加内容,跟改变数组长度一样,数组初始化的时候不能声明具体大小
function pushContenth() public
{
arr.push(10);
}
}
2.运行截图
二、 int数组内容2(二维数组,修改数组元素,数组长度)
1.代码
注:在这里初始化二维数组是不同的【最内层】【外层】
//指定编译器版本,版本标识符
pragma solidity >=0.4.0;
contract TwoArray
{
//1.定义二维数组时,先内层再外层
uint[2][3] garde=[[1,2],[3,4],[5,6]];
//2.最外层的长度,为3
function getLength0() public view returns(uint)
{
return garde.length;
}
//3.内层长度为2![在这里插入图片描述](https://img-blog.csdnimg.cn/20210311212607365.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzUwMjk5NDg0,size_16,color_FFFFFF,t_70)
function getLength1() public view returns(uint)
{
return garde[0].length;
}
function getLength() public view returns(uint)
{
return garde[0].length*garde.length;
}
//4.所有元素相加
function getCount() public view returns(uint)
{
uint count=0;
for(uint i=0;i<garde.length;i++)
{
for(uint j=0;j<garde[0].length;j++)
{
count+=garde[i][j];
}
}
return count;
}
//5.获取数组
function getArray() public view returns(uint[2][3] memory)
{
return garde;
}
//6.更改数组3的值
function changeContent(uint a) public
{
garde[1][0]=a;
}
}
2.运行截图
如图:这个是求数组长度的运行截图,分别对应代码1,2,3.
如图:根据顺序分别是数组元素总和、数组内容
改变数组内容为10后,重新输入的数组长度如下图: