Hash em Ruby

O que é um Hash?
Uma simples definição, um hash é uma coleção de pares chave-valor, ou seja, uma chave apontando para um valor.
Explicando um pouco mais...
Hash é uma estrutura de dados semelhante ao Array, conhecida também como Hash Table, Dictionary e Hash Map com o objetivo de armazenar elementos ou informações. Porém, diferentemente do array:
  • Seus elementos estão associados a um objeto e não um índice inteiro;
  • Uma chave sempre ira apontar para um valor;
  • Uma chave Hash pode ser (quase) qualquer tipo de objeto;
  • A chave identifica unicamente um objeto. Tipicamente é um atributo dele.
  • Manipulando - Hash
    Imagine o seguinte cenário, estamos montando um cadastro de clientes, e vamos usar o hash para armazenar as informações dos clientes…
    Vamos começar com um hash vazio
    person = Hash.new
    => {}
    
    # Também podemos criar um novo hash vázio, apenas atribuindo {}
    # person = {}
    Conferindo se person é realmente um hash
    person
    => {}
    person.class
    => Hash
    Verificar se nosso hash está vazio
    person.empty?
    => true
    Podemos iniciar um hash com dados...
    genre = { m: 'Male', f: 'Female' }
    => {:m=>"Male", :f=>"Female"}
    genre
    => {:m=>"Male", :f=>"Female"}
    A chave de um Hash pode ser qualquer tipo de dado
    hash = {1 => 'A integer', true => 'A boolean', [1,2,3] => 'Array'}
    => {1=>"A integer", true=>"A boolean", [1, 2, 3]=>"Array"}
    hash
    => {1=>"A integer", true=>"A boolean", [1, 2, 3]=>"Array"}
    Vamos adicionar name, age e birth
    person[:name] = 'Diego'
    => "Diego"
    
    person[:age] = 34
    => 34
    
    person[:birth] = '23/03/1987'
    => "23/03/1987"
    Verificando se os dados foram inseridos corretamente:
    person
    => {:name=>"Diego", :age=>34, :birth=>"23/03/1987"}
    Vamos ver os dados:
    person[:name]
    => "Diego"
    
    person[:age]
    => 34
    
    person[:birth]
    => "23/03/1987"
    Quantos items temos em nosso hash person?
    person.size
    => 3
    Vamos excluir birth?
    person.delete(:birth)
    => "23/03/1987"
    Como deve ter ficado os dados de person?
    person
    => {:name=>"Diego", :age=>34}
    Verificando se nosso hash está vazio
    person.empty?
    => false
    Caso você queira se aprofundar e saber mais detalhes sobre Hash eu sugiro que dê uma olhada na documentação do Ruby que também é bastante completa e tem vários exemplos.

    33

    This website collects cookies to deliver better user experience

    Hash em Ruby