首页 > 解决方案 > 将字符串推入结构中的数组中

问题描述

我有一个坚固的结构定义如下:

struct Batch{
    address payable owner;
    address payable[] precedentsOwners;
    uint[] precedentsBatches;
}

我想创建一个函数,允许我将所有者列表附加到这个结构,但我得到了很多错误......有没有办法做到这一点?

非常感谢。

标签: arraysfunctionstructsolidity

解决方案


您可以使用push()数组方法将项目添加到存储数组中。

请注意,您的数组是address payable类型,因此如果您要传递一个正则address(请参阅 的参数appendToOwners()),您需要payable先将其强制转换。

pragma solidity ^0.8;

contract MyContract {
    struct Batch{
        address payable owner;
        address payable[] precedentsOwners;
        uint[] precedentsBatches;
    }
    
    Batch public myBatch;
    
    function appendToOwners(address _newOwner) external {
        myBatch.precedentsOwners.push(payable(_newOwner));
    }
}

推荐阅读