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

如何在Helm模板(gotpl别名)中判断布尔值为空及简单值是否为空?

在Helm(gotpl)模板中判断值是否为空

1. 区分布尔值的「未设置(空)」与「设置为false」

Helm内置的empty函数会把布尔值false也判定为“空”,如果要严格区分未定义/未设置的布尔值和明确赋值为false的布尔值,需要用hasKey函数检查键是否存在:

  • 判断布尔值是否未设置(为空):

    {{ if not (hasKey .Values "myBool") }}
      # 此处处理myBool完全未定义的逻辑
    {{ end }}
    
  • 区分“未设置”和“设置为false”的完整示例:

    {{ if not (hasKey .Values "myBool") }}
      # myBool未设置(空)
    {{ else if not .Values.myBool }}
      # myBool已设置,但值为false
    {{ else }}
      # myBool已设置,值为true
    {{ end }}
    

2. 判断简单值是否为空

对于字符串、数字、列表、字典这类简单值,直接使用empty函数即可,它会根据类型自动判断:

  • 空字符串""、数字0、空列表[]、空字典{}以及未定义的nil值,都会被empty判定为“空”。

示例:

# 检查字符串是否为空(未设置或空字符串)
{{ if empty .Values.myString }}
  # 处理字符串为空的逻辑
{{ end }}

# 检查列表是否为空(未设置或空列表)
{{ if empty .Values.myList }}
  # 处理列表为空的逻辑
{{ end }}

如果需要区分「明确设置为0的数字」和「未设置的数字」,同样可以结合hasKey:

{{ if and (hasKey .Values "myNumber") (eq .Values.myNumber 0) }}
  # 数字明确设置为0
{{ else if not (hasKey .Values "myNumber") }}
  # 数字未设置(空)
{{ end }}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 09:30:50