数据存储篇之int数组

注:以下代码来源于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.运行截图

在这张图片中getArray得到的是先缩短了长度,然后push了好几次以后的数组,getlength这个时候就变成了7

二、 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后,重新输入的数组长度如下图:
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值