首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法将数组传递给函数

无法将数组传递给函数
EN

Ethereum用户
提问于 2020-10-29 19:09:44
回答 1查看 60关注 0票数 1

我有一份合同:

代码语言:javascript
复制
pragma experimental ABIEncoderV2;

contract Ballot {
    constructor(string[] memory proposalNames) public {...}
}

我试过:

代码语言:javascript
复制
pragma solidity >=0.4.25 <0.6.0;
pragma experimental ABIEncoderV2;

import "truffle/Assert.sol";
import "truffle/DeployedAddresses.sol";
import "../contracts/voting.sol";

contract TestVoting {
    function testCounter() public {
        Ballot myContract = new Ballot(["foo", "bar"]);
    }
}

我有个错误:

代码语言:javascript
复制
TypeError: Invalid type for argument in function call. Invalid implicit conversion from string memory[2] memory to string memory[] memory requested.
        Ballot myContract = new Ballot(["foo", "bar"]);

我该怎么解决呢?

EN

回答 1

Ethereum用户

回答已采纳

发布于 2020-10-29 19:39:37

改变这一点:

代码语言:javascript
复制
constructor(string[] memory proposalNames)

对此:

代码语言:javascript
复制
constructor(string[2] memory proposalNames)

或者这个:

代码语言:javascript
复制
Ballot myContract = new Ballot(["foo", "bar"]);

对此:

代码语言:javascript
复制
string[] memory proposalNames = new string[](2);
proposalNames[0] = "foo";
proposalNames[1] = "bar";
Ballot myContract = new Ballot(proposalNames);
票数 3
EN
页面原文内容由Ethereum提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://ethereum.stackexchange.com/questions/89747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档