在编写智能合约的时候,某些方法可能需要通过传递数组来实现,那么在solidity中如何通过传递数组来完成相应的功能呢。下面以具体实例来进行说明。

function test1(address[] memory a3,uint256[] memory a4) public{
  // 省略业务逻辑
}

在上面的方法中参数a3为地址的数组,参数a4为整数的数组。在remix编译出来的方法中展示效果如下。

solidity remix方法传递数组参数插图

那么,在此如何进行相应的参数封装和传递呢?有两种方案可实行,在实行这两种方案之前,先进行了解一下这里数组的结构,以下为地址单个参数时所传递的数组结构:

["0x2157BD9E65369D1C1CaeF981212748735F1C187B","0xCcd4BC74ebdEd88EAf9bAf49846b3a2257815E21"]

这样就封装了a3这一类的数组参数,但此时是两个数组,那么他们之间同样可以通过逗号进行分割。因此,针对上面情况就参数就变成了:

["0x2157BD9E65369D1C1CaeF981212748735F1C187B","0xCcd4BC74ebdEd88EAf9bAf49846b3a2257815E21"],[1000,10000]

上面这种形式是一种方案,就是直接在test1后面的参数中填写上面的数据内容直接执行。

另外一种方案就是点击test1后面的向下的箭头,展开之后会出现下图所示的两个参数,原本用逗号分隔的两部分,分别填入两个参数中,同样可以达到目的。

solidity remix方法传递数组参数插图(1)

服务

承接以太坊智能合约项目,联系方式QQ:541075754



solidity remix方法传递数组参数插图(2)

关注公众号:程序新视界,一个让你软实力、硬技术同步提升的平台

除非注明,否则均为程序新视界原创文章,转载必须以链接形式标明本文链接

本文链接:http://choupangxia.com/2019/08/31/solidity-remix%e6%96%b9%e6%b3%95%e4%bc%a0%e9%80%92%e6%95%b0%e7%bb%84%e5%8f%82%e6%95%b0/