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

Solidity新手在Remix IDE运行程序遇无限Gas需求报错求助

问题解决

报错原因分析

你的代码存在两个核心问题,触发了Remix静态分析器的gas异常报错:

  1. reply函数声明为pure,但pure函数的约束是不能读取或修改合约状态变量,同时你在函数内给局部memory变量赋值的操作无意义,导致分析器误判。
  2. 你错误地给函数参数(局部memory变量)赋值,而非合约的存储变量_feedback,逻辑完全偏离预期。

修正后的代码

pragma solidity ^0.5.0;
contract test {
    string public _feedback;
    
    function reply() public nonpayable {
        _feedback = "Well done!";
    }
}

关键修改点

  • 移除reply函数的多余参数feedback,因为你并未实际使用它。
  • 删除pure修饰符,改用nonpayable(Solidity 0.5中public函数默认是payable,若不需要接收以太,明确声明nonpayable更安全),让函数可以合法修改合约状态变量。
  • 直接给存储变量_feedback赋值,实现预期功能。

修正后,两个gas无限的报错会消失,合约可正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 02:15:58