Aprendendo a usar o itself

Dicas - 21/Fev/2021 - por Marcus Pereira

Em Ruby existe o método itself, que é uma forma de referenciar o próprio objeto. Vamos explorar um pouco como ele funciona. Considere, por exemplo, um array:

irb(main):001:0> arr = 1.upto(20).to_a
=> [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]

Neste exemplo vamos verificar o id da variável arr.

irb(main):002:0> arr.object_id
=> 13240

Usando o itself você pode obter o mesmo resultado. Perceba que ele retorna o mesmo id do objeto guardado na memória:

irb(main):003:0> arr.itself.object_id
=> 13240

Mas como esse método poderia ser utilizado na prática? Vamos ver um possível exemplo aplicado.

Digamos que você recebeu uma coleção de notas das provas de um aluno de uma escola e gostaria de identificar se vieram notas repetidas.

irb(main):005:0> notas = [9.4, 8.2, 7.1, 8.2]
=> [9.4, 8.2, 7.1, 8.2]

Porém, você sentiu a necessidade de identificar se existem notas iguais durante o período do ano letivo. Você pode usar o group_by para obter o resultado.

irb(main):006:0> notas.group_by(&:itself)
=> {9.4=>[9.4], 8.2=>[8.2, 8.2], 7.1=>[7.1]}

Agora podemos ver que a nota 8.2 foi repetida 2x, enquanto as outras notas aparecem apenas uma vez.😊

Fique à vontade para estudar mais um pouco sobre o #itself consultando a documentação nos links abaixo.

Referências

Foto de perfil do autor
Marcus Pereira

Dev

Desenvolvedor, gosta de ler e apaixonado por mergulho. Gosta de falar sobre o mundo da tecnologia e ama dogs =)