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

Jinja模板生成枚举代码如何消除多余空白并调整输出格式?

你可以直接使用调整后的Jinja模板实现目标格式输出:

enum MsgType
{
{% for type in types -%}
{% for member in type.members -%}
{% if member.is_enum %}    {{ member.value }},
{% endif -%}
{% endfor -%}
{% endfor %}
}

调整说明

  • 原模板没有给枚举值添加前置缩进,也没有在每个枚举值后加单独换行,所以多个枚举值会挤在同一行。调整后在{{ member.value }}前手动写入4个空格作为缩进,逗号后直接换行,保证每个枚举成员单独占一行、缩进符合要求
  • 调整了空白控制符-的位置,仅消去for、if这类控制标签前后的多余换行,不会影响枚举值行的正常换行和缩进
  • 原模板末尾带分号,你期望的输出没有分号,因此直接去掉了模板末尾的分号

如果你的目标编程语言不支持枚举最后一个成员末尾带逗号,可以用如下模板自动处理末尾逗号:

enum MsgType
{
{% set enum_members = [] %}
{% for type in types -%}
  {% for member in type.members -%}
    {% if member.is_enum %}{% set _ = enum_members.append(member.value) %}{% endif -%}
  {% endfor -%}
{% endfor -%}
{% for member in enum_members %}    {{ member }}{% if not loop.last %},{% endif %}
{% endfor %}
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 13:54:03