# A Interface Sequence

(PECL ds >= 1.0.0)

## Introdução

A Sequence descreve o comportamento de valores dispostos em uma única dimensão linear. Algumas linguagens se referem a isso como uma "Lista". É semelhante a um array que usa chaves incrementais de inteiro, com exceção de algumas características:

- Os valores sempre serão indexados como [0, 1, 2, …, size - 1].
- Apenas é permitido acessar valores pelo índice na faixa [0, size - 1].

Casos de uso:

- Onde é usada um array como uma lista (sem preocupação com as chaves).
- Uma alternativa mais eficiente para SplDoublyLinkedList e SplFixedArray.

## Resumo da Interface

interface Ds\Sequence extends Ds\Collection, ArrayAccess {
/* Métodos */
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étodos herdados */
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
}

## Registro de Alterações

Versão | Descrição
--- | ---
PECL ds 1.3.0 | A interface agora estende ArrayAccess.

## Índice

- Ds\Sequence::allocate — Aloca memória suficiente para uma capacidade requerida
- Ds\Sequence::apply — Atualiza todos os valores aplicando uma função callback a cada valor
- Ds\Sequence::capacity — Retorna a capacidade atual
- Ds\Sequence::contains — Determina se a sequência contém determinados valores
- Ds\Sequence::filter — Cria uma nova sequência usando um callable para determinar quais valores incluir.
- Ds\Sequence::find — Tenta encontrar o índice de um valor
- Ds\Sequence::first — Retorna o primeiro valor na sequência
- Ds\Sequence::get — Retorna o valor em um índice específico
- Ds\Sequence::insert — Insere valores em um índice específico
- Ds\Sequence::join — Une todos os valores como uma string
- Ds\Sequence::last — Retorna o último valor
- Ds\Sequence::map — Retorna o resultado da aplicação de um callback a cada valor
- Ds\Sequence::merge — Retorna o resultado de adicionar todos os valores fornecidos à sequência
- Ds\Sequence::pop — Remove e retorna o último valor
- Ds\Sequence::push — Adiciona valores ao final da sequência
- Ds\Sequence::reduce — Reduz a sequência a um único valor usando uma função de callback
- Ds\Sequence::remove — Remove e retorna um valor pelo índice
- Ds\Sequence::reverse — Inverte a sequência no local
- Ds\Sequence::reversed — Retorna uma cópia reversa
- Ds\Sequence::rotate — Rotaciona a sequência pelo número dado de rotações
- Ds\Sequence::set — Atualiza um valor em um índice específico
- Ds\Sequence::shift — Remove e retorna o primeiro valor
- Ds\Sequence::slice — Retorna uma sub-sequência de um intervalo dado
- Ds\Sequence::sort — Ordena a sequência no local
- Ds\Sequence::sorted — Retorna uma cópia ordenada
- Ds\Sequence::sum — Retorna a soma de todos os valores na sequência
- Ds\Sequence::unshift — Adiciona valores no início da sequência

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