TypeError:return语句中的参数数量与return声明中的参数数量不同。返回_initialMessage;

时间:2019-12-15 10:45:19

标签: ethereum solidity remix

我正在用remix编译器写合同,并且正面临这个问题。有人可以帮我了解我在做什么错,为什么在尝试返回_initialMessage或这种情况下遇到新消息时遇到类型错误

pragma solidity >=0.4.22 <0.7.0;

contract Inbox{
    string message;

    function _Inbox(string memory _initialMessage) private {
        return _initialMessage;    
    }

    function _setMessage(string memory _newMessage) private{
        return _newMessage;
    }

    function _getMessage() public view returns(string memory){
        return message;
    }
}

2 个答案:

答案 0 :(得分:0)

您需要在_inbox和_setMessage方法中设置变量。 将您的代码更改为:

    pragma solidity >=0.4.22 <0.7.0;

contract Inbox{
    string message;

    function _Inbox(string memory _initialMessage) private {
        message =  _initialMessage;    
    }

    function _setMessage(string memory _newMessage) private{
        message = _newMessage;
    }

    function _getMessage() public view returns(string memory){
        return message;
    }
}

答案 1 :(得分:0)

我们需要提及使用返回('返回类型')的函数预期返回的类型和数量。

例如。在 _Inbox 函数中,你只需要包含返回(字符串)。