# 静态数组

一个随机访问的通用类型值的序列,具有固定长度。

StaticArray API 类似于 Array API,重要的区别在于它具有固定的长度,不能更改。与普通的数组不同,StaticArray 没有单独的备份缓冲区,因此没有间接级别,因此可以具有最小的开销,并且性能特征与 C 中的数组非常相似。

# 构造函数

  • new StaticArray<T>(length: i32)
    
    构造一个新的静态数组。

# 静态成员

  • function fromArray<T>(source: Array<T>): StaticArray<T>
    

    从普通数组创建静态数组。

  • function concat<T>(source: StaticArray<T>, other: StaticArray<T>): StaticArray<T>
    

    已弃用! 类似于实例成员 concat,但接受和返回 StaticArray

    建议使用参数化 concat 实例方法代替 StaticArray.concat

  • function slice<T>(source: StaticArray<T>, start?: i32, end?: i32): StaticArray<T>
    

    已弃用! 类似于实例成员 slice,但返回 StaticArray

    建议使用参数化 slice 实例方法代替 StaticArray.slice

# 实例成员

# 字段

  • readonly length: i32
    
    此静态数组的固定长度。

# 方法

  • function at(pos: i32): T
    

    获取指定位置的元素。此方法允许正负整数。负整数从最后一个元素开始倒数。

  • function concat<U extends ArrayLike<T> = Array<T>>(other: U): U
    

    将此静态数组和另一个普通数组的值连接到一个新的普通数组中,按照此顺序。参数 U 接受 Array<T>StaticArray<T> 类型。

  • function copyWithin(target: i32, start: i32, end?: i32): this
    

    将数组值的某个区域复制到目标位置开始的相应值上。

  • function every(fn: (value: T, index: i32, self: StaticArray<T>) => bool): bool
    

    使用数组中的每个值调用指定的函数,直到找到第一个使函数返回 false 的值为止。如果所有函数都返回 true 或数组为空,则返回 true,否则返回 false

  • function fill(value: T, start?: i32, end?: i32): this
    

    用指定的值替换数组从 start(包含)到 end(不包含)的值,并返回数组。

  • function filter(fn: (value: T, index: i32, self: StaticArray<T>) => bool): Array<T>
    

    使用数组中的每个值调用指定的函数,返回一个包含所有使函数返回 true 的值的数组。

  • function findIndex(fn: (value: T, index: i32, self: StaticArray<T>) => bool): i32
    

    使用数组中的每个值调用指定的函数,直到找到第一个使函数返回 true 的值为止,并返回其索引。如果从未出现这种情况,则返回 -1

  • function findLastIndex(fn: (value: T, index: i32, self: StaticArray<T>) => bool): i32;
    

    使用数组中的每个值从末尾开始调用指定的函数,直到找到第一个使函数返回 true 的值为止,并返回其索引。如果从未出现这种情况,则返回 -1

  • function forEach(fn: (value: T, index: i32, self: StaticArray<T>) => void): void
    

    使用数组中的每个值调用指定的函数。

  • function includes(value: T, fromIndex?: i32): bool
    

    测试数组是否包含指定的值,可以选择提供起始索引。

  • function indexOf(value: T, fromIndex?: i32): i32
    

    获取数组中可以找到指定值的第一个索引。如果未找到,则返回 -1

  • function join(separator?: string): string
    

    将数组的所有值连接到一个字符串中,用指定的间隔符(默认值:,)分隔。

  • function lastIndexOf(value: T, fromIndex?: i32): i32
    

    获取数组中可以找到指定值的最后一个索引。如果未找到,则返回 -1

  • function map<U>(fn: (value: T, index: i32, self: StaticArray<T>) => U): Array<U>
    

    使用数组中的每个值调用指定的函数,返回一个包含函数返回值的新数组。

  • function slice<U extends ArrayLike<T> = Array<T>>(start?: i32, end?: i32): U
    

    返回此静态数组从 begin(包含)到 end(不包含)的值的浅拷贝,作为一个新的普通数组。如果省略,end 默认值为数组的末尾。参数 U 接受 Array<T>StaticArray<T> 类型。

  • function some(fn: (value: T, index: i32, self: StaticArray<T>) => bool): bool
    

    使用数组中的每个值调用指定的函数,直到找到第一个使函数返回 true 的值为止,并返回 true。否则或如果数组为空,则返回 false

  • function sort(fn?: (a: T, b: T) => i32): this
    

    对数组的值进行就地排序,使用指定的比较器函数,在返回数组之前对其进行修改。比较器返回一个负值表示 a < b,正值表示 a > b0 表示两者相等。与 JavaScript 不同,JavaScript 会执行隐式转换为字符串,比较器默认情况下比较类型为 T 的两个值。

  • function reduce<U>(
      fn: (accumValue: U, currentValue: T, index: i32, self: StaticArray<T>) => U,
      initialValue: U
    ): U
    

    使用数组中的每个值调用指定的 reducer 函数,生成一个返回值。在 initialValue 开始,相应的先前 reducer 函数的返回值将存储在 accumValue 中,在整个过程中最终成为返回值。

  • function reduceRight<U>(
      fn: (accumValue: U, currentValue: T, index: i32, self: StaticArray<T>) => U,
      initialValue: U
    ): U
    

    使用数组中的每个值(从右到左)调用指定的 reducer 函数,生成一个返回值。有关 reducer 函数的签名,请参见 Array#reduce

  • function reverse(): this
    

    就地反转数组的值,在返回数组之前对其进行修改。

  • function toString(): string
    

    返回 join() 的结果。