# L'interface Sequence

(PECL ds >= 1.0.0)

## Introduction

Une Sequence décrit le comportement des valeurs disposées dans une seule dimension linéaire. Certains langages se réfèrent à cela comme une "Liste". C'est similaire à un tableau qui utilise des clés entières incrémentales, à l'exception de quelques caractéristiques :

- Les valeurs seront toujours indexées comme [0, 1, 2, …, size - 1].
- Seules les valeurs par index dans la plage [0, size - 1] sont autorisées.

Cas d'utilisation :

- Partout où l'on utiliserait un tableau en tant que liste (sans se soucier des clés).
- Une alternative plus efficace à SplDoublyLinkedList et SplFixedArray.

## Sommaire de l'Interface

interface Ds\Sequence extends Ds\Collection, ArrayAccess {
/* Méthodes */
abstract public function allocate(int `$capacity`): void
abstract public function apply(callable `$callback`): void
abstract public function capacity(): int
abstract public function contains(mixed `...$values`): bool
abstract public function filter(callable `$callback` = ?): Ds\Sequence
abstract public function find(mixed `$value`): mixed
abstract public function first(): mixed
abstract public function get(int `$index`): mixed
abstract public function insert(int `$index`, mixed `...$values`): void
abstract public function join(string `$glue` = ?): string
abstract public function last(): mixed
abstract public function map(callable `$callback`): Ds\Sequence
abstract public function merge(mixed `$values`): Ds\Sequence
abstract public function pop(): mixed
abstract public function push(mixed `...$values`): void
abstract public function reduce(callable `$callback`, mixed `$initial` = ?): mixed
abstract public function remove(int `$index`): mixed
abstract public function reverse(): void
abstract public function reversed(): Ds\Sequence
abstract public function rotate(int `$rotations`): void
abstract public function set(int `$index`, mixed `$value`): void
abstract public function shift(): mixed
abstract public function slice(int `$index`, int `$length` = ?): Ds\Sequence
abstract public function sort(callable `$comparator` = ?): void
abstract public function sorted(callable `$comparator` = ?): Ds\Sequence
abstract public function sum(): int|float
abstract public function unshift(mixed `$values` = ?): void
/* Méthodes héritées */
public function Ds\Collection::clear(): void
public function Ds\Collection::copy(): Ds\Collection
public function Ds\Collection::isEmpty(): bool
public function Ds\Collection::toArray(): array
public function Countable::count(): int
public function IteratorAggregate::getIterator(): Traversable
public function JsonSerializable::jsonSerialize(): mixed
public function ArrayAccess::offsetExists(mixed `$offset`): bool
public function ArrayAccess::offsetGet(mixed `$offset`): mixed
public function ArrayAccess::offsetSet(mixed `$offset`, mixed `$value`): void
public function ArrayAccess::offsetUnset(mixed `$offset`): void
}

## Historique

Version | Description
--- | ---
PECL ds 1.3.0 | Cette interface étend maintenant ArrayAccess.

## Sommaire

- Ds\Sequence::allocate — Alloue suffisamment de mémoire pour une capacité requise
- Ds\Sequence::apply — Met à jour toutes les valeurs en appliquant une fonction de rappel à chaque valeur
- Ds\Sequence::capacity — Renvoie la capacité actuelle
- Ds\Sequence::contains — Détermine si la séquence contient des valeurs données
- Ds\Sequence::filter — Créer une nouvelle séquence en utilisant un callable pour déterminer quelles valeurs inclure
- Ds\Sequence::find — Essaye de trouver l'index d'une valeur
- Ds\Sequence::first — Renvoie la première valeur de la séquence
- Ds\Sequence::get — Renvoie la valeur à un index donné
- Ds\Sequence::insert — Insère des valeurs à un index donné
- Ds\Sequence::join — Rassemble toutes les valeurs en une chaîne
- Ds\Sequence::last — Renvoie la dernière valeur
- Ds\Sequence::map — Renvoie le résultat de l'application d'une fonction de rappel à chaque valeur
- Ds\Sequence::merge — Renvoie le résultat de l'ajout de toutes les valeurs de la séquence
- Ds\Sequence::pop — Supprime et renvoie la dernière valeur
- Ds\Sequence::push — Ajoute des valeurs à la fin de la séquence
- Ds\Sequence::reduce — Réduit la séquence à une seule valeur en utilisant une fonction de rappel
- Ds\Sequence::remove — Supprime et renvoie une valeur par index
- Ds\Sequence::reverse — Renverse la séquence en place
- Ds\Sequence::reversed — Renvoie une copie renversée
- Ds\Sequence::rotate — Tourne la séquence d'un nombre donné de rotations
- Ds\Sequence::set — Met à jour une valeur à un index donné
- Ds\Sequence::shift — Supprime et renvoie la première valeur
- Ds\Sequence::slice — Renvoie une sous-séquence d'une plage donnée
- Ds\Sequence::sort — Trie la séquence en place
- Ds\Sequence::sorted — Renvoie une copie triée
- Ds\Sequence::sum — Renvoie la somme de toutes les valeurs de la séquence
- Ds\Sequence::unshift — Ajoute des valeurs au début de la séquence

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open