array
一个值的序列。
你可以通过把逗号分隔的数值序列放在括号里来构造一个数组。 这些值不一定是相同的类型。
你可以用 .at()
方法访问和更新数组中的一项。
索引是以零为基础的,负数的索引会循环到数组的末端。
你可以用 for 循环来迭代一个数组。
数组可以用 +
运算符相加,连接在一起,并可与整数相乘。
注意: 一个长度为 1
的数组需要一个尾部的逗号,如 {1,)
。
这是为了区别于简单的括号表达式,如 (1 + 2) * 3
。
空数组为 ()
。
Example
#let values = (1, 7, 4, -3, 2)
#values.at(0) \
#(values.at(0) = 3)
#values.at(-1) \
#values.find(calc.even) \
#values.filter(calc.odd) \
#values.map(calc.abs) \
#values.rev() \
#(1, (2, 3)).flatten() \
#(("A", "B", "C")
.join(", ", last: " and "))
方法
方法是可用于该类型的一系列函数,可以使用 .
操作符调用它们。
.
操作符调用它们。len
method
数组的长度。
first
method
返回数组中的第一项。 可以用在赋值运算符的左边。 如果数组是空的,则失败并出现错误。
last
method
返回数组中的最后一项。 可以用在赋值运算符的左边。 如果数组是空的,则失败并出现错误。
at
method
返回数组中指定索引位置的项。可以在赋值的左侧使用它。 如果索引超出范围,则返回默认值;如果没有指定默认值,则会报错。
index
要检索项的索引位置。
default
如果索引超出范围,则返回的默认值。
push
method
在数组末尾添加一个值。
value
要插入到数组末尾的值。
pop
method
从数组中移除并返回最后一个项。如果数组为空,则会报错。
insert
method
在数组的指定索引位置插入一个值。如果索引超出范围,则会报错。
index
要插入项的索引位置。
value
要插入项的值。
remove
method
从数组中删除指定索引位置的值,并将其返回。
index
要删除项的索引位置。
slice
method
提取数组的切片。如果起始索引或结束索引超出范围,则会报错。
start
起始索引(包括在内)。
end
结束索引(不包括在内)。如果省略,则提取从起始索引到数组末尾的整个片段。
count
要提取的项数。这相当于将 start + count
作为结束位置。与结束索引互斥。
contains
method
判断数组是否包含指定的值。
这个方法还有特殊的语法:你可以写成 2 in (1, 2, 3)
而不是 (1, 2, 3).contains(2)
。
value
要搜索的值。
find
method
搜索满足给定函数返回 true
的项,并返回第一个匹配的结果,如果没有匹配则返回 none
。
searcher
应用于每个项的函数。必须返回一个布尔值。
position
method
搜索满足给定函数返回 true
的项,并返回第一个匹配的索引,如果没有匹配则返回 none
。
searcher
应用于每个项的函数。必须返回一个布尔值。
filter
method
生成一个新数组,只包含原始数组中满足给定函数返回 true
的项。
test
应用于每个项的函数。必须返回一个布尔值。
map
method
使用给定函数将原始数组中的所有项进行转换,生成一个新数组。
mapper
应用于每个项的函数。
enumerate
method
返回一个新数组,其中包含值及其索引。
返回的数组由形如长度为 2 的数组的 (index, value)
对组成。
可以使用 let 绑定或 for 循环对其进行分解。
zip
method
将两个数组进行合并。 如果两个数组长度不相等,它将仅合并到较小数组的最后一个元素,并忽略剩余的元素。 返回值是一个数组,其中每个元素又是一个大小为 2 的数组。
other
应该与当前数组进行合并的另一个数组。
fold
method
使用累加器函数将所有项折叠成一个单一的值。
init
用于初始化的初始值。
folder
折叠函数。必须具有两个参数:一个用于累加值,一个用于项。
sum
method
对所有项进行求和(适用于任何可相加的类型)。
default
如果数组为空,应该返回什么。如果数组可以为空,则必须设置该值。
product
method
计算所有项的乘积(适用于任何可相乘的类型)。
default
如果数组为空,需要返回什么。如果数组可以为空,则必须设置该值。
any
method
判断给定的函数是否对数组中的任何项返回 true
。
test
对每个项应用的函数。该函数必须返回一个布尔值。
all
method
判断给定的函数是否对数组中的所有项返回 true
。
test
对每个项应用的函数。该函数必须返回一个布尔值。
flatten
method
将所有嵌套数组合并为一个扁平的数组。
rev
method
以相反的顺序返回一个新数组,但其中包含相同的项。
join
method
将数组中的所有项合并为一个项。
separator
在数组的每个项之间插入一个值。
last
最后两个项之间的替代分隔符。
sorted
method
返回一个具有相同项,且排好序的新数组。
key
如果给定,则将此函数应用于数组中的元素,以确定排序的键。