PHP - Funzioni di sequenza

Introduzione all'interfaccia Sequence

Una sequenza può descrivere il comportamento dei valori disposti in un'unica dimensione lineare. Alcune lingue possono fare riferimento a questo come un elenco. È simile a un array che utilizza chiavi intere incrementali, ad eccezione di alcune caratteristiche.

  • I valori possono sempre essere indicizzati come [0, 1, 2,…, size - 1].
  • Accesso consentito solo ai valori in base all'indice nell'intervallo [0, dimensione - 1].

Casi d'uso

  • Ovunque possiamo usare un array come elenco (non si tratta di chiavi).
  • Un'alternativa più efficiente a SplDoublyLinkedList e SplFixedArray.

Sinossi dell'interfaccia

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 ] )
}

Costanti predefinite

Ds \ Map :: MIN_CAPACITY

Suor n Descrizione della funzione
1

Ds \ Sequence :: allocate ()

Questa funzione può allocare memoria sufficiente per una capacità richiesta.

2

Ds \ Sequence :: apply ()

Questa funzione può aggiornare tutti i valori applicando una funzione di callback a ciascun valore.

3

Ds \ Sequence :: capacity ()

Questa funzione può restituire la capacità corrente.

4

Ds \ Sequence :: contiene ()

Questa funzione può determinare se una sequenza contiene valori dati.

5

Ds \ Sequence :: filter ()

creare una nuova sequenza utilizzando callable per determinare quali valori includere.

6

Ds \ Sequence :: find ()

Questa funzione può tentare di trovare l'indice del valore.

7

Ds \ Sequence :: first ()

Questa funzione può restituire il primo valore in una sequenza.

8

Ds \ Sequence :: get ()

Questa funzione può restituire il valore in un determinato indice.

9

Ds \ Sequence :: insert ()

Questa funzione può inserire valori in un dato indice.

10

Ds \ Sequence :: join ()

Questa funzione può unire tutti i valori insieme come una stringa.

11

Ds \ Sequence :: last ()

Questa funzione può restituire l'ultimo valore.

12

Ds \ Sequence :: map ()

Questa funzione può restituire il risultato dell'applicazione di un callback a ciascun valore.

13

Ds \ Sequence :: merge ()

Questa funzione può restituire il risultato dell'aggiunta di tutti i valori dati alla sequenza.

14

Ds \ Sequence :: pop ()

Questa funzione può rimuovere e restituire l'ultimo valore.

15

Ds \ Sequence :: push ()

Questa funzione può aggiungere valori alla fine di una sequenza.

16

Ds \ Sequence :: reduce ()

Questa funzione può ridurre la sequenza a un singolo valore utilizzando una funzione di callback.

17

Ds \ Sequence :: remove ()

Questa funzione può rimuovere e restituire un valore in base all'indice.

18

Ds \ Sequence :: reverse ()

Questa funzione può invertire una sequenza sul posto.

19

Ds \ Sequence :: invertita ()

Questa funzione può restituire una copia inversa.

20

Ds \ Sequence :: rotate ()

Questa funzione può ruotare la sequenza per un dato numero di rotazioni.

21

Ds \ Sequence :: set ()

Questa funzione può aggiornare un valore all'indice dato.

22

Ds \ Sequence :: shift ()

Questa funzione può rimuovere e restituire un primo valore.

23

Ds \ Sequence :: slice ()

Questa funzione può restituire una sequenza secondaria dell'intervallo specificato.

24

Ds \ Sequence :: sort ()

Questa funzione può ordinare una sequenza sul posto.

25

Ds \ Sequence :: ordinato ()

Questa funzione può restituire una copia ordinata.

26

Ds \ Sequence :: sum ()

Questa funzione può restituire la somma di tutti i valori in una sequenza.

27

Ds \ Sequence :: unshift ()

Questa funzione aggiunge valori all'inizio di una sequenza.