PHP - Funciones de secuencia

Introducción a la interfaz de secuencia

Una secuencia puede describir el comportamiento de valores organizados en una única dimensión lineal. Algunos idiomas pueden referirse a esto como una lista. Es similar a una matriz que usa claves enteras incrementales, con la excepción de algunas características.

  • Los valores siempre se pueden indexar como [0, 1, 2,…, tamaño - 1].
  • Solo se permite acceder a valores por índice en el rango [0, tamaño - 1].

Casos de uso

  • Donde sea que podamos usar una matriz como una lista (no preocupada por las claves).
  • Una alternativa más eficiente a SplDoublyLinkedList y SplFixedArray.

Sinopsis de la interfaz

Ds\Sequence implements Ds\Collection {
   /* Methods */
   abstract public void allocate( int $capacity )
   abstract public void apply( callable $callback )
   abstract public int capacity( void ) 
   abstract public bool contains([ mixed $...values ] )
   abstract public Ds\Sequence filter([ callable $callback ] )
   abstract public mixed find( mixed $value )
   abstract public mixed first( void )
   abstract public mixed get( int $index )
   abstract public void insert( int $index [, mixed $...values ] )
   abstract public string join([ string $glue ] )
   abstract public mixed last( void )
   abstract public Ds\Sequence map( callable $callback )
   abstract public Ds\Sequence merge( mixed $values )
   abstract public mixed pop( void )
   abstract public void push([ mixed $...values ] )
   abstract public mixed reduce( callable $callback [, mixed $initial ] )
   abstract public mixed remove( int $index )
   abstract public void reverse( void )
   abstract public Ds\Sequence reversed( void )
   abstract public void rotate( int $rotations )
   abstract public void set( int $index , mixed $value )
   abstract public mixed shift( void )
   abstract public Ds\Sequence slice( int $index [, int $length ] )
   abstract public void sort([ callable $comparator ] )
   abstract public Ds\Sequence sorted([ callable $comparator ] )
   abstract public number sum( void )
   abstract public void unshift([ mixed $values ] )
}

Constantes predefinidas

Ds \ Map :: MIN_CAPACITY

No Señor Función descriptiva
1

Ds \ Sequence :: allocate ()

Esta función puede asignar suficiente memoria para una capacidad requerida.

2

Ds \ Sequence :: apply ()

Esta función puede actualizar todos los valores aplicando una función de devolución de llamada a cada valor.

3

Ds \ Sequence :: capacidad ()

Esta función puede devolver la capacidad actual.

4

Ds \ Sequence :: contiene ()

Esta función puede determinar si una secuencia contiene valores dados.

5

Ds \ Sequence :: filter ()

cree una nueva secuencia usando invocable para determinar qué valores incluir.

6

Ds \ Sequence :: buscar ()

Esta función puede intentar encontrar el índice del valor.

7

Ds \ Sequence :: first ()

Esta función puede devolver el primer valor de una secuencia.

8

Ds \ Sequence :: get ()

Esta función puede devolver el valor en un índice dado.

9

Ds \ Sequence :: insert ()

Esta función puede insertar valores en un índice determinado.

10

Ds \ Sequence :: join ()

Esta función puede unir todos los valores como una cadena.

11

Ds \ Sequence :: last ()

Esta función puede devolver el último valor.

12

Ds \ Sequence :: map ()

Esta función puede devolver el resultado de aplicar una devolución de llamada a cada valor.

13

Ds \ Sequence :: merge ()

Esta función puede devolver el resultado de agregar todos los valores dados a la secuencia.

14

Ds \ Sequence :: pop ()

Esta función puede eliminar y devolver el último valor.

15

Ds \ Sequence :: push ()

Esta función puede agregar valores al final de una secuencia.

dieciséis

Ds \ Sequence :: reduce ()

Esta función puede reducir la secuencia a un solo valor mediante una función de devolución de llamada.

17

Ds \ Sequence :: remove ()

Esta función puede eliminar y devolver un valor por índice.

18

Ds \ Sequence :: reverse ()

Esta función puede revertir una secuencia in situ.

19

Ds \ Sequence :: reversed ()

Esta función puede devolver una copia invertida.

20

Ds \ Sequence :: rotate ()

Esta función puede rotar la secuencia por un número determinado de rotaciones.

21

Ds \ Sequence :: set ()

Esta función puede actualizar un valor en el índice dado.

22

Ds \ Sequence :: shift ()

Esta función puede eliminar y devolver un primer valor.

23

Ds \ Sequence :: slice ()

Esta función puede devolver una subsecuencia del rango dado.

24

Ds \ Sequence :: sort ()

Esta función puede ordenar una secuencia in situ.

25

Ds \ Sequence :: sorted ()

Esta función puede devolver una copia ordenada.

26

Ds \ Secuencia :: suma ()

Esta función puede devolver la suma de todos los valores en una secuencia.

27

Ds \ Sequence :: unshift ()

Esta función agrega valores al principio de una secuencia.