Ruby 101: Estruturas de Dados

TK
Training Center
Published in
4 min readAug 24, 2017

Part II: Array, Hash & Iteração em estruturas de dados

Esse é a segunda parte da série Beautiful Ruby series by Tk. Se você é um dev iniciante aprendendo Ruby, comece pela parte I dessa série. A primeira parte aprendemos sobre a história do Ruby & os básicos como variáveis, Controle de Fluxo (is-else) e looping.

Nessa segunda parte, vamos falar sobre Estruturas de Dados em Ruby, como elas funcionam e como iteramos sobre elas.

Array: Coleção | Lista | Estrutura de Dados

Imagine que você queira armazenar um número inteiro 1 numa variável. Mas talvez agora você queira armazenar outro também: 2. E 3, 4, 5 …

Nós temos um outro jeito de armazenar inteiros sem ser milhões de variáveis? Se eu estou perguntando, provavelmente temos outra forma de armazenarmos.

Array é uma lista que podemos armazenar uma coleção de valores (como esses número inteiros que queríamos). Vamos usá-lo!

É bem simples! Criamos um array e armazenando no my_integer.

Mas você deve estar se perguntando: “Como consigo pegar um valor desse array?”

Boa pergunta! Array tem o conceito de índices. O primeiro elemento do array tem índice 0 (zero). O secundo é 1, e assim por diante. Você sacou a ideia!

Para entender melhor como cada índice aponta para seu elemento no array, vamos desenhá-lo?

Usando a sintaxe do Ruby agora. É bem simples de entender como funciona!

Armazenamos a lista de inteiros no my_integers, e printamos os índices 0, 1 e 4, que nos dá os elementos 5, 7 e 4.

Imagine que nós não queremos brincar com inteiros. Queremos na verdade armazenar strings. Como uma lista de nomes das pessoas da família. A minha seria assim:

Funciona da mesma forma que dos números inteiros. Nice! :)

Agora nós sabemos como os índices de array funcionam, mas precisamos entender melhor como adicionamos elementos a um array.

Os métodos mais comuns para adicionar um elemento a um array é o push e <<. Como ver como funciona:

Push é bem simples! Só precisamos passar o elemento (ex: “The Effective Engineer”) como parâmetro do método push.

<< também é super simples! Também precisamos passar o elementos como parâmetro. Mas você pode me perguntar “O método << não usa um ponto (dot notation) como outros métodos. Como ele pode ser um método também?”. Boa pergunta! :)

Escrevendo isso:

..é similar a escrever isso:

Great! :)

Bom, chega de Arrays. Bora falar de uma outra estrutura de dados.

Hash: Estrutura de Dados Chave-Valor | Dicionário

Agora sabemos como Array usam índices como número inteiros. Mas se não quisermos usar números inteiros como índices? Alguma Estrutura de Dados que suporte usar números, string e outros tipos de dados como índices.

Vamos aprender sobre a estrutura de dados Hash. Também conhecida como Hash Table, Dictionary e Hash Map. Hash é uma coleção de pares chave-valor. Parecido com isso:

Uma chave apontando para um valor. Como podemos acessar um valor do hash? Isso, você está certo… Usando a chave! Vamos tentar!

Eu criei um hash sobre mim. Meu nome, apelido & nacionalidade, e esses atributos são as chaves do hash.

Assim como aprendemos como o array usa índices para acessar seus elements, nós também usamos índices (chaves no contexto do hash) para a acessar os valores do hash.

No exemplo à cima printamos a frase sobre mim usando todos os valores armazenados no hash. Bem simples!

Outra coisa legal de hashes é que podemos usar valores de qualquer tipo de dado. No hash criado, quero adicionar uma chave “age” e um valor inteiro.

O par chave (“age”) valor (24) usando string como chave e inteiro como valor.

Assim como fizemos com arrays, vamos aprender a adicionar elementos ao hash. O par chave-valor é a grande sacada de como o hash funciona.

Só precisamos atribuir um valor a uma chave do hash. Valor 24 para a chave “age”. Nada complicado né?! :)

Iteração: Looping + Estrutura de Dados

Assim como aprendemos no Ruby Basics, a interação sobre arrays é bem simples. Nós, Ruby devs, usamos comumente o iterador each! Bora usar!

Então o iterador each funciona passando o elemento do array como parâmetro para o bloco. Para cada elemento, nós printamos.

Para o hash, também podemos usar o iterador each, mas passando 2 parâmetros: a chave & o valor.

Esse é um exemplo de como podemos usá-lo. Nomeamos os 2 parâmetros como key e value, mas não é necessário nomear dessa forma. Podemos nomear de qualquer forma que quisermos. Bora ver isso!

Agora nomeamos a chave do hash como attribute, e funciona como esperado! Nice!

That’s it!

Aprendemos muitas coisas sobre o Estruturas de dados do Ruby:

  • Array: Coleção| Lista de elementos
  • Hash: Estrutura baseada em Chave-Valor
  • Como a iteração / looping em estruturas de dados funcionam

Espero que tenham curtido o conteúdo e aprendido um pouco mais sobre como Ruby funciona. Se ainda não viu o primeiro post da série, aprendemos sobre o básico de Ruby.

Continue aprendendo e programando!

Meu Twitter & Github. ☺

--

--