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

.proto文件枚举变量是否需大写?枚举命名规则咨询

问题解答

1. 枚举成员的语法强制规则

Protobuf 对枚举成员的命名有硬性语法要求:

  • 只能包含字母、数字、下划线,绝对不能使用连字符-、空格这类特殊字符
  • 不能以数字开头

你代码里的en-uk、en-gb这类带-的写法是直接违反语法的,这才是工具报错的核心原因,和大小写无关。

2. 大小写是编码规范,非语法强制

Protobuf 本身没有要求枚举成员必须大写,但行业普遍遵循 Google 的编码规范:

  • 枚举成员用全大写,单词间用下划线分隔(比如EN_UK、EN_US)
  • 枚举类型名用 PascalCase(你写的Language符合规范)

如果一定要用小写,语法上是允许的(比如en_uk),但不推荐——不符合通用规范会降低代码可读性,团队协作时容易出问题。

修正后的示例代码

推荐的规范写法

enum Language {
    EN = 0;
    EN_UK = 1;
    EN_GB = 2;
    EN_AU = 3;
    EN_US = 4;
    FIL_EN = 5;
    EN_IN = 6;
    FR = 7;
}

语法合法但不推荐的小写写法

enum Language {
    en = 0;
    en_uk = 1;
    en_gb = 2;
    en_au = 3;
    en_us = 4;
    fil_en = 5;
    en_in = 6;
    fr = 7;
}

总结

  • 必须修改的是把连字符-替换为下划线_,这是语法强制要求
  • 大小写属于编码规范范畴,不是语法强制,但推荐遵循全大写加下划线的通用写法

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 04:02:59