小伙伴们对golang编程感兴趣吗?是否正在学习相关知识点?如果是,那么本文《helm 中的“if 和 (ne)”运算符如何工作?》,就很适合你,本篇文章讲解的知识点主要包括。在之后的文章中也会多多分享相关知识点,希望对大家的知识积累有所帮助!
问题内容
我正在使用一个一开始就具有以下结构的图表,但我很难理解它何时计算为 true。
{{- if and .Values.vpceIngress.enabled .Values.Http.paths (ne .Values.vpceIngress.class "traefik2") }}
我相信 enabled 和 paths 一定都是 true,但是 ne 之后让我失望。
解决方案
and 和 ne 是 Go templates 中的函数。
and
returns the boolean and of its arguments by returning the
first empty argument or the last argument, that is,
"and x y" behaves as "if x then y else x". all the
arguments are evaluated.
ne
returns the boolean truth of arg1 != arg2
所以模板行相当于一个更伪的codish
if (
.Values.vpceIngress.enabled
&& .Values.http.paths
&& .Values.vpceIngress.class != "traefik2"
)
普通 .value.key 的真实性基本上是“这个字段/键是 not the zero value for the data type。这也适用于映射,因为“这个字段/键是否已定义”,因为没有该路径的映射等于 nil 或非value(注意,这仅在实际定义了父地图时才有效!否则模板错误)
今天关于《helm 中的“if 和 (ne)”运算符如何工作?》的内容介绍就到此结束。