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

如何解决gRPC Proto文件中枚举值输出格式与末尾空格问题?

解决方案

方法一:修改Protobuf定义(推荐)

把Technology枚举从ServiceTechnology消息中移出,让Temporary直接引用枚举类型,序列化输出会直接显示枚举值:

// 将枚举移至消息外部
enum Technology {
    GPU = 0;
    CPU = 1;
    TK_CPU = 2;
    TK_GPU = 3;
}

message ServiceTechnology {
    Technology technology = 1;
}

message Temporary {
  Technology technology = 1; // 直接使用枚举类型,而非嵌套消息
}

代码中设置值时简化为:

Technology: Technology_TK_GPU,

此时输出格式就是technology: TK_GPU,无嵌套结构和末尾空格。

方法二:手动提取枚举值输出(不修改Proto定义)

如果无法修改Protobuf文件,就在代码中手动提取嵌套的枚举值并格式化输出,避免直接打印整个消息结构体:

// 假设已初始化temp变量
fmt.Printf("technology: %s\n", temp.Technology.Technology.String())

这种方式会直接输出枚举值的字符串形式,完全符合你想要的格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 16:39:54