1. 列表函数

Helm 提供了一个简单的 list 类型,包含任意顺序的列表。类似于数组或切片,但列表是被设计用于不可变数据类型。

创建一个整型列表:

$myList := list 1 2 3 4 5

上述会生成一个列表 [1 2 3 4 5]。

Helm 提供了以下列表函数: append(mustAppend), compact (mustCompact), concat, first(mustFirst), has (mustHas), initial (mustInitial), last (mustLast), prepend (mustPrepend), rest (mustRest), reverse (mustReverse), seq, slice (mustSlice), uniq (mustUniq), until, untilStep, 和 without (mustWithout)。

1.1. first, mustFirst

获取列表中的第一项,使用 first。

first $myList

返回 1

first 有问题时会出错,mustFirst 有问题时会向模板引擎返回错误。

1.2. rest, mustRest

获取列表的尾部内容(除了第一项外的所有内容),使用rest。

rest $myList returns [2 3 4 5]

rest有问题时会出错,mustRest 有问题时会向模板引擎返回错误。

1.3. last, mustLast

使用last获取列表的最后一项:

last $myList 

返回 5。

这大致类似于反转列表然后调用first。

1.4. initial, mustInitial

通过返回所有元素 但 除了最后一个元素来赞赏last。

initial $myList

返回 [1 2 3 4]。

initial 有问题时会出错,但是 mustInitial 有问题时会向模板引擎返回错误。

1.5. append, mustAppend

在已有列表中追加一项,创建一个新的列表。

$new = append $myList 6

上述语句会设置 $new 为 [1 2 3 4 5 6]。 $myList会保持不变。

append 有问题时会出错,但 mustAppend 有问题时会向模板引擎返回错误。

1.6. prepend, mustPrepend

将元素添加到列表的前面,生成一个新的列表。

prepend $myList 0

上述语句会生成 [0 1 2 3 4 5]。 $myList会保持不变。

prepend 有问题时会出错,但 mustPrepend 有问题时会向模板引擎返回错误。

1.7. concat

将任意数量的列表串联成一个。

concat $myList ( list 6 7 ) ( list 8 )

上述语句会生成 [1 2 3 4 5 6 7 8]。 $myList 会保持不变。

1.8. reverse, mustReverse

反转给定的列表生成一个新列表。

reverse $myList

上述语句会生成一个列表: [5 4 3 2 1]。

reverse 有问题时会出错,但 mustReverse 有问题时会向模板引擎返回错误。

1.9. uniq, mustUniq

生成一个移除重复项的列表。

list 1 1 1 2 | uniq

上述语句会生成 [1 2]

uniq 有问题时会出错,但 mustUniq 有问题时会向模板引擎返回错误。

1.10. without, mustWithout

without 函数从列表中过滤内容。

without $myList 3

上述语句会生成 [1 2 4 5]

一个过滤器可以过滤多个元素:

without $myList 1 3 5

这样会得到: [2 4]

without 有问题时会出错,但 mustWithout 有问题时会向模板引擎返回错误。

1.11. has, mustHas

验证列表是否有特定元素。

has 4 $myList

上述语句会返回 true, 但 has "hello" $myList 就会返回false。

has 有问题时会出错,但 mustHas 有问题时会向模板引擎返回错误。

1.12. compact, mustCompact

接收一个列表并删除空值项。

$list := list 1 "a" "foo" ""
$copy := compact $list

compact 会返回一个移除了空值(比如, "")的新列表。

compact 有问题时会出错,但 mustCompact 有问题时会向模板引擎返回错误。

1.13. slice, mustSlice

从列表中获取部分元素,使用 slice list [n] [m]。等同于 list[n:m].

slice $myList 返回 [1 2 3 4 5]。 等同于 myList[:]。
slice $myList 3 返回 [4 5]等同于 myList[3:]。
slice $myList 1 3 返回 [2 3]等同于 myList[1:3]。
slice $myList 0 3 返回 [1 2 3]等同于 myList[:3]。

slice 有问题时会出错,但 mustSlice 有问题时会向模板引擎返回错误。

1.14. until

until 函数构建一个整数范围。

until 5

上述语句会生成一个列表:

[0, 1, 2, 3, 4]

对循环语句很有用:

range $i, $e := until 5

1.15. untilStep

类似 until, untilStep 生成一个可计数的整型列表。但允许你定义开始,结束和步长:

untilStep 3 6 2

上述语句会生成 [3 5],从3开始,每次加2,直到大于等于6。类似于Python的 range 函数。

1.16. seq

原理和bash的 seq 命令类似。

  • 1 单个参数 (结束位置) - 会生成所有从1到包含 end 的整数。
  • 2 多个参数 (开始, 结束) - 会生成所有包含start 和 end 的整数,递增或者递减。
  • 3 多个参数 (开始, 步长, 结束) - 会生成所有包含 start 和 end 按 step递增或递减的整数。
seq 5       => 1 2 3 4 5
seq -3      => 1 0 -1 -2 -3
seq 0 2     => 0 1 2
seq 2 -2    => 2 1 0 -1 -2
seq 0 2 10  => 0 2 4 6 8 10
seq 0 -2 -5 => 0 -2 -4
Copyright © 温玉 2021 | 浙ICP备2020032454号 all right reserved,powered by Gitbook该文件修订时间: 2022-01-08 03:09:47

results matching ""

    No results matching ""