【问题标题】:How to remove this ParserError of contract in solidity language?如何在solidity语言中删除这个ParserError的合约?
【发布时间】:2021-02-20 00:54:31
【问题描述】:

我正在使用 Remix IDE,下面的代码抛出错误:

:browser/tests/project/record.sol:18:21: ParserError: Expected ';'但 得到 '[' 地址 docs[] = new ;

pragma experimental ABIEncoderV2;
pragma solidity >=0.4.18;

contract Record {

    struct MedRecord {
        string password;
        string name;
        address patient;
        address[] doctor;
    }
    mapping(address => MedRecord) internal medRecords;

    address[] public recordList;


    function addRecord(address _key, string memory password, string memory name) public {
        address docs[] = new ;
        medRecords[_key] = MedRecord(password, name, _key, []);
        recordList.push(_key);
    }

    function remove(address _key) public {
        delete medRecords[_key];
    }
    
    // function contains(address _key) public view returns (bool) {
    //     return MedRecords[_key][0] != '';
    // }
    
    function getByKey(address _key) public view returns (MedRecord memory) {
        return medRecords[_key];
    }
}

不过,代码对我来说看起来不错。

【问题讨论】:

    标签: events blockchain solidity truffle remix


    【解决方案1】:

    此陈述不完整:

    address docs[] = new ;
    

    你应该写这样的东西:

    address[] memory docs = new address[](2);
    

    【讨论】:

    • medRecords[_key] = MedRecord(password, name, _key, []) 现在在这一行中显示错误。TypeError:无法推断数组元素的常见类型。 medRecords[_key] = MedRecord(密码, 姓名, _key, []);
    猜你喜欢
    • 2019-06-16
    • 2022-12-03
    • 1970-01-01
    • 2021-12-26
    • 1970-01-01
    • 2021-05-30
    • 2021-12-28
    • 2022-08-05
    • 2022-12-16
    相关资源
    最近更新 更多