Gostaria de usar o índice do array em uma rotina de mapa. Por exemplo, este código Raku:
raku -e 'my @a = "First", "Second", "Third", "First"; say @a.map({ "Index of $_ is: ;" })'
impressões:
(Index of First is: ; Index of Second is: ; Index of Third is: ; Index of First is: ;)
Seria possível obter o índice do array, como:
(Index of First is: 0; Index of Second is: 1; Index of Third is: 2; Index of First is: 3;)
Obrigado!
Há
.kv
que produzir “chaves” e valores. Para um array, as chaves são os índices 0, 1, 2...Esta é uma sequência plana de comprimento 2N; podemos dizer
map
para pegar 2 coisas de cada vez, por meio de uma assinatura explícita:ou por meio de variáveis de espaço reservado :
Como index vem lexicograficamente antes de value , funciona como no caso anterior de assinatura explícita, ou seja, a mesma assinatura é produzida para nós nos bastidores. Podemos ver isso:
Observe que o que importa é a ordem Unicode dos nomes das variáveis, não a ordem de aparecimento.
No espírito do TIMTOWDI, algumas alternativas (IMO não é melhor):
.pairs
, prima para.kv
produzir pares "chave => valor" em vez de uma lista simplesEste último é o menos idiomático, eu acho.