You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Solidity代码getNumber()函数报错,求原因分析及修正方案

错误原因与代码修正

错误解释

你遇到的TypeError: Different number of arguments in return statement than in returns declaration报错,核心原因是**getNumber()函数声明未指定返回值类型,但实际执行了返回操作**。

在Solidity中,所有需要返回数据的函数,必须在函数签名里通过returns关键字明确声明返回值的类型(多返回值还要指定对应类型列表)。你的getNumber()函数只标记了view(表示只读不修改合约状态),但没声明返回值类型,编译器默认认为这个函数不需要返回任何值,但你在函数体内用return number;返回了一个uint类型的值,两者矛盾,因此触发报错。

修正后的代码

// SPDX-License-Identifier: MIT
pragma solidity >=0.8.9;

contract Storage {

   uint number;

    // takes a value _number and assigns it to the state variable number
    function setNumber(uint _number) public {
          number = _number;
    }

    // returns the value of the state variable number
    function getNumber() public view returns(uint) {
        return number;
    }
 }

只需要给getNumber()函数添加returns(uint)声明,明确告诉编译器这个函数会返回一个uint类型的值,就能解决问题。

内容的提问来源于stack exchange,提问作者Harshit Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 13:14:53