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

学习Solidity编写合约遇Truffle Test编译错误,求解决建议

Solidity编译错误(ParserError)解决建议

错误原因

CompileError: project:/contracts/Fundraiser.sol:9:1: ParserError: Function, variable, struct or modifier declaration expected 这个错误明确指向Fundraiser.sol第9行存在语法违规,Solidity 0.5.16编译器在该行未识别到合法的合约成员声明(函数、变量、结构体、修饰器),常见诱因包括:

  • 第9行存在拼写错误、多余字符或格式错误的注释
  • 代码结构混乱(比如未闭合的大括号/括号,或在合约内部放置了不属于合约成员的内容)
  • 使用了当前Solidity版本不支持的语法特性

排查与修复步骤

  • 定位第9行代码逐一校验:打开Fundraiser.sol找到第9行,检查:
    • 若为注释,确认单行注释用//、多行注释用/* ... */且符号完整闭合
    • 若为成员声明,核对关键字拼写(如function、uint)是否正确,语句末尾是否遗漏分号,代码块是否用大括号正确包裹
  • 对照书籍代码修正偏差:逐行对比《Hands-On Smart Contract Development With Solidity and Ethereum》日文版中的示例代码,排查是否有遗漏、误写的内容,比如合约结构、函数定义的位置是否合规
  • 适配Solidity版本:确认书籍代码是否针对v0.5.16编写,若书籍使用了更高版本(如0.6+)的语法(如uint简写、自定义错误),需调整代码适配当前版本
  • 检查合约整体结构:确认合约的大括号{}完全成对闭合,没有在错误位置开启或结束代码块

辅助排查方法

  • 执行truffle compile --all命令,获取更详细的编译日志,排查是否存在其他隐含语法问题
  • 将代码复制到Solidity在线编辑器(如Remix),利用实时语法检测快速定位错误点

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 19:40:28