Solidity:嵌套映射访问不能返回

问题描述

我正在编写用于学习的简单智能合约。

我写了一份合同

contract A {
    mapping(address => mapping(uint32 => uint32)) data;
    ..
    function getData(address addr,index id) public view {
        return data[addr][id];
    }
}

它返回编译错误

TypeError: Different number of arguments in return statement than in returns declaration

在那一行的右边。

也许我的代码 data[addr][index] 中写错了,应该修复哪一个

还是只是 solidity一个错误

解决方法

奇怪的是,我在发布后立即找到了答案..

只需添加 returns 关键字如

function getData(address addr,index id) public view returns(uint32) {
...

然后工作正常。

对于其他人,我会保留这个问题。