在编写智能合约的时候,某些方法可能需要通过传递数组来实现,那么在solidity中如何通过传递数组来完成相应的功能呢。下面以具体实例来进行说明。
function test1(address[] memory a3,uint256[] memory a4) public{
// 省略业务逻辑
}
面的方法中参数a3为地址的数组,参数a4为整数的数组。在remix编译出来的方法中展示效果如下。
那么,在此如何进行相应的参数封装和传递呢?有两种方案可实行,在实行这两种方案之前,先进行了解一下这里数组的结构,以下为地址单个参数时所传递的数组结构:
["0x2157BD9E65369D1C1CaeF981212748735F1C187B","0xCcd4BC74ebdEd88EAf9bAf49846b3a2257815E21"]
1
这样就封装了a3这一类的数组参数,但此时是两个数组,那么他们之间同样可以通过逗号进行分割。因此,针对上面情况就参数就变成了:
["0x2157BD9E65369D1C1CaeF981212748735F1C187B","0xCcd4BC74ebdEd88EAf9bAf49846b3a2257815E21"],[1000,10000]
1
上面这种形式是一种方案,就是直接在test1后面的参数中填写上面的数据内容直接执行。
另外一种方案就是点击test1后面的向下的箭头,展开之后会出现下图所示的两个参数,原本用逗号分隔的两部分,分别填入两个参数中,同样可以达到目的。