Tamanho de um array em Ruby

Em: 12/11/2007 Tags: Referencie do seu blog (Trackback)

Em Ruby, para descobrir o tamanho de um array ao menos 3 métodos podem ser utilizados. Confira neste artigo se você sabe utilizá-los corretamente.

Vamos começar com um exemplo trivial:

arr = [1, 2, 3]
arr.length # => 3
arr.size   # => 3

Até aí nenhuma novidade, certo? O método Array#length devolve o tamanho de um array (Array#size é apenas um alias para Array#length). Mas observe o código abaixo:

arr = Array.new
arr[5] = 'caio'
arr.size # => Qual o resultado?

Você errou se disse que o resultado é 1. O resultado é 6. Isso porquê o índice 5, inicializado no nosso exemplo, corresponde ao sexto elemento do array. Do índice 0 a 4 também temos valores inicializados: todos esses índices possuem o valor nil.

arr[0..4] # => [nil, nil, nil, nil, nil]

Mas e se quisermos saber o tamanho de um array excluindo os valores nil? Para essas situações devemos utilizar Array#nitems.

arr = Array.new
arr[5] = 'ruby'
arr[10] = 'caio'
arr.length # => 11
arr.nitems # => 2

Conclusão: se você inicializar os índices de um array manualmente, de maneira não-contínua, você deve lembrar que Array#length e Array#nitems provavelmente retornarão valores diferentes.

Artigos relacionados:

Escreva um comentário (utilize o formato Markdown)