首页 > 其他分享 >solidity数组的使用

solidity数组的使用

时间:2022-11-05 20:56:44浏览次数:40  
标签:GPL SPDX License solidity 0.7 数组 使用

长度固定的数组

  • uint[]定义的数组,可以使用引用查看索引位置的数值,使用.length得到数组的长度
  • byte定义的数组,将字符串以十六进制形式保存,不能使用.lengthbyte默认值为0
// SPDX-License-Identifier: GPL-3.0

pragma solidity >=0.7.0 <0.9.0;

contract FixedSizeArrays{
    uint[3] public numbers = [2, 3, 4];
    
    bytes1 public b1;
    bytes2 public b2;
    bytes3 public b3;
    
    function setElement(uint index,uint value) public{
        numbers[index] = value;
        // b3[index] = value;
    }
    
    function getLength() public view returns(uint){
        return numbers.length;
        // return bytes3.length;
    }
    
    function setBytesArraty() public{
        b1='a';
        b2='ab';
        b3='z';
    }
}
  • 默认值
  • 执行setBytesArray()函数

动态数组

  • 可以使用push 和 pop 函数
// SPDX-License-Identifier: GPL-3.0

pragma solidity >=0.7.0 <0.9.0;

contract DynamicArrays{
    uint[] public numbers;
    
    function getLength() public view returns(uint){
        return numbers.length;
    }
    
    function addElement(uint item) public{
        numbers.push(item);
    }
    
    function getElement(uint i) public view returns(uint){
        if(i < numbers.length){
            return numbers[i];
        }
        return 0;
    }
}

string 和 bytes

// SPDX-License-Identifier: GPL-3.0

pragma solidity >=0.7.0 <0.9.0;

contract BytesAndString{
    bytes public b = 'abc';
    string public s;
    
    function getElement() public view returns(bytes1){
        return b[0];
        
        // return s[0];
    }
    
    function getLength() public view returns(uint){
        return b.length;
        // return s.length;
    }
}

标签:GPL,SPDX,License,solidity,0.7,数组,使用
From: https://www.cnblogs.com/xiao-xiaoyang/p/16861249.html

相关文章

  • vagrant的安装使用入门(mac环境下)
    安装官网教程:https://developer.hashicorp.com/vagrant/tutorials/getting-started/getting-started-project-setupbrewinstallvagrant#使用brew进行安装brewins......
  • SpringBoot实战笔记:02_使用注解与Java配置的Aop示例
    转载:https://blog.csdn.net/android_zyf/article/details/79579875<!--02_新的依赖--><!--导入spring的aop支持--><dependency><groupId>${spring-groupId}</groupId>......
  • Spring Boot 中使用 Swagger
    前后端分离开发,后端需要编写接⼝说明⽂档,会耗费⽐较多的时间。swagger是⼀个⽤于⽣成服务器接⼝的规范性⽂档,并且能够对接⼝进⾏测试的⼯具。作用⽣成接⼝说明⽂档......
  • 使用selenium登录12306
    fromselenium.webdriverimportChromefromselenium.webdriver.common.byimportByfromselenium.webdriver.common.keysimportKeysfromselenium.webdriver.chrome.s......
  • tekton Tiggers使用案例
    安装Tiggerskubectlapply--filename\https://storage.googleapis.com/tekton-releases/triggers/latest/release.yamlkubectlapply--filename\https://storage.g......
  • expr包的使用
    expr_basic_testpackageexpr_practiceimport("errors""fmt""github.com/antonmedv/expr""testing""time")//https://github.com/anton......
  • 【微信小程序】view | scroll | swiper 的使用
    目录1.view的使用2.scroll的使用3.swiper的使用4.补充wx:for的使用1.view的使用viewtest.wxml<!--hover-class:点击后的样式hover-start-time:按下多久后出现样式,单......
  • vue如何过滤出一个数组中不包含另一个数组的数据
    data里面定义测试数组arr1:[1,3,5,7,11,0],arr2:[1,11],arrres:[]然后过滤一下for(letoneofthis.arr1){if(this.arr2.indexOf(one)==-1)......
  • 实验4 类与数组、指针
    实验任务5:vectorInt.hpp:#include<iostream>#include<cassert>usingnamespacestd;classvectorInt{public:vectorInt(intn);vectorI......
  • React使用Antd自定义主题报错
    安装包"customize-cra":"^1.0.0","customize-cra-less-loader":"^2.0.0","less":"^4.1.3","less-loader":"^11.1.0",修改config-overrides.jsconst{override......