1. 逻辑和流程控制

Helm 包括了需要逻辑和流控制函数,包括 and, coalesce, default, empty, eq, fail, ge, gt, le, lt, ne, not, and or。

1.1. and

返回两个参数的 and 布尔值。

and .Arg1 .Arg2

1.2. or

返回两个参数的 or 布尔值。会返回第一个非空参数或最后一个参数。

or .Arg1 .Arg2

1.3. not

返回参数的布尔求反。

not .Arg

1.4. eq

返回参数的布尔等式(比如, Arg1 == Arg2)。

eq .Arg1 .Arg2

1.5. ne

返回参数的布尔非等式(比如 Arg1 != Arg2)。

ne .Arg1 .Arg2

1.6. lt

如果第一参数小于第二参数,返回布尔真。否则返回假(比如, Arg1 < Arg2)。

lt .Arg1 .Arg2

1.7. le

如果第一参数小于等于第二参数,返回布尔真,否则返回假(比如, Arg1 <= Arg2)。

le .Arg1 .Arg2

1.8. gt

如果第一参数大于第二参数,返回布尔真,否则返回假(比如, Arg1 > Arg2)。

gt .Arg1 .Arg2

1.9. ge

如果第一参数大于等于第二参数,返回布尔真,否则返回假。(比如, Arg1 >= Arg2)。

ge .Arg1 .Arg2

1.10. default

使用 default 设置一个简单的默认值。

default "foo" .Bar

上述示例中,如果.Bar 非空值,则使用它,否则会返回foo。

"空"定义取决于以下类型:

  • 整型: 0
  • 字符串: ""
  • 列表: []
  • 字典: {}
  • 布尔: false
  • 以及所有的nil (或 null)

对于结构体,没有空的定义,所以结构体从来不会返回默认值。

1.11. empty

如果给定的值被认为是空的,则 empty 函数返回 true,否则返回 false。空值列举在 default 部分。

empty .Foo

注意在 Go 模板条件中,空值是为你计算出来的。这样你很少需要 if empty .Foo,仅使用 if .Foo 即可。

1.12. fail

无条件地返回带有指定文本的空 string 或者 error。

这在其他条件已经确定而模板渲染应该失败的情况下很有用。

fail "Please accept the end user license agreement"

1.13. coalesce

coalesce 函数获取一个列表并返回第一个非空值。

coalesce 0 1 2

上述会返回1。

此函数用于扫描多个变量或值:

coalesce .name .parent.name "Matt"

上述示例会优先检查 .name 是否为空。如果不是,就返回值。如果 是 , 继续检查 .parent.name。 最终,如果 .name.parent.name 都是空,就会返回 Matt

1.14. ternary

ternary 函数获取两个值和一个 test 值。如果 test 值是 true,则返回第一个值。如果 test 值是空,则返回第二个值。 这和C或其他编程语言中的的 ternary 运算符类似。

true test value

ternary "foo" "bar" true

或者

true | ternary "foo" "bar"

上述返回 "foo"。

false test value

ternary "foo" "bar" false

或者

false | ternary "foo" "bar"

上述返回 "bar".

Copyright © 温玉 2021 | 浙ICP备2020032454号 all right reserved,powered by Gitbook该文件修订时间: 2022-01-08 03:09:47

results matching ""

    No results matching ""