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

Solidity中使用switch-case语句报“Expected primary expression”错误求助

Solidity中switch-case报“Expected primary expression”错误的解决方法

你的错误源于Solidity的switch-case语法不符合规范,0.8.11版本的Solidity要求case和default关键字后必须添加冒号:,同时代码结构需要调整。

修正后的代码示例

function foo(uint8 version) public {
    switch version {
        case 1: {
            // 编写你的业务逻辑
            break; // 可选,避免fall-through到后续case
        }
        default: {
            revert();
        }
    }
}

如果case内只有单条语句,也可以省略大括号:

function foo(uint8 version) public {
    switch version
        case 1:
            // 单条逻辑语句
            break;
        default:
            revert();
}

关键说明

  • 语法强制要求:Solidity中case和default必须以冒号结尾,缺少冒号会直接触发你遇到的“Expected primary expression”错误。
  • 代码块包裹:当case内包含多条语句时,必须用{}包裹代码块;单条语句可省略大括号。
  • Fall-through行为:Solidity的switch默认支持fall-through(执行完当前case后会继续执行后续case代码),若不需要该行为,需在case代码末尾添加break语句终止执行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 21:15:06