Solidity:如何从单个值初始化固定数组?

Solidity: how to initialise a fix array from a single value?

我想将单个参数作为数组传递给函数调用:

contract MyToken is StandaloneERC20 {

    function initialize(
        address owner,
        address minter,
        address[] memory pausers
    ) public initializer {

        address[] memory minters = [minter];

        StandaloneERC20.initialize("MyToken", "MTK", uint8(18), minters, pausers);
    }

StandaloneERC20.initialize 需要一个数组作为第四个参数 minters:

function initialize(
    string memory name, string memory symbol, uint8 decimals, address[] memory minters, address[] memory pausers
) public initializer {

但是,使用我的代码,我得到以下编译器错误,solidity 0.5.7:

TypeError: Type address[1] memory is not implicitly convertible to expected type address[] memory.

    address[] memory minters = [minter];
    ^---------------------------------^

我也尝试过将铸币机作为数组参数传递:

contract MyToken is StandaloneERC20 {

    function initialize(
        address owner,
        address minter,
        address[] memory pausers
    ) public initializer {

        StandaloneERC20.initialize("MyToken", "MTK", uint8(18), [minter], pausers);
    }

但这似乎与我的预期完全不同,因为这个编译器错误:

Member "initialize" not found or not visible after argument-dependent lookup in type(contract StandaloneERC20).
        StandaloneERC20.initialize("MyToken", "MT", uint8(18), [minter], pausers);
        ^------------------------^

如何将单个参数作为数组传递?

这是一种用单个参数声明数组的方法

contract MyToken is StandaloneERC20 {
    function initialize(
        address owner, 
        address minter, 
        address[] memory pausers
    ) public initializer {
        address[] memory minters = new address[](1);
        minters[0] = minter;
        StandaloneERC20.initialize("MyToken", "MTK", uint8(18), minters, pausers);
    }
}

这是关于 Allocating Memory Arrays

Solidity 文档