Qual é o sentido do firstindex em Julia?

36

Na documentação, firstindex () localiza o primeiro índice de uma coleção. Por que não usar apenas 1? Qual poderia ser o caso quando não é 1?

Alexey Petrushin
fonte

Respostas:

47

O primeiro índice não é necessariamente 1 porque Julia oferece suporte à indexação personalizada . Para entender por que é útil, você não pode vencer a publicação no blog de Tim Holy .

Os índices personalizados permitem codificar informações sobre seus dados no próprio padrão de indexação : às vezes é mais natural começar a contar de um, às vezes de zero, às vezes de algum número mais arbitrário.

Outras vezes, como ao escrever algoritmos genéricos, você realmente não se importa com o índice específico. Caso em que você pode usar abstrações como firstindex, lastindex, e eachindex.

Na maioria das vezes, é melhor evitar se referir a um índice completamente e iterar sobre os elementos de uma coleção (por exemplo for x in xs).

Julia permite que você use a estratégia mais eficaz para seus dados.

David Varela
fonte
"No caso em que você pode usar abstrações como firstindex, lastindexe eachindexVocê poderia dizer que Julia. Define os padrões para você ...
Vector Sigma
11
Você pode adicionar links à documentação para firstindex (), lastindex () e eachindex ()?
Peter Mortensen
14

Existem tipos especiais de matrizes, como por exemplo OffsetArrays.jl, que podem ter índices arbitrários.

crstnbr
fonte