Article image
Raillen Oliveira
Raillen Oliveira17/06/2021 12:45
Compartilhe

Diferença entre os métodos com "!, ?" em Ruby

  • #Ruby

Olá, pessoal!

Gostaria de falar um pouco sobre as diferenças entre o uso de métodos com ponto de interrogação, exclamação ou sem pontuação em Ruby!

Os métodos com ? são métodos que retornam valor booleano, verdadeiro (true) ou falso (false). Ou seja, são realmente o que o símbolo significa, uma pergunta.

image

Ou seja, estou verificando se na variável nome contém essas letras ou respectiva ordem de letras.

Os métodos com ! e os métodos sem símbolos de pontuação, de nomes iguais, fazem a mesma operação, mas com uma diferença de extrema importância entre "como fazem".

Métodos com ponto de exclamação são chamados de "dangerous methods" (métodos perigosos) em Ruby, pois eles atuam no objeto o modificando, assim, modificando todas as referências feitas a este objeto em seu código. Sabendo que tudo (tudo mesmo!) em Ruby, são objetos, isso também aplicasse a variáveis primitivas. Portanto, muito cuidado ao usá-los!

Algo importante a se observar, é que esses métodos possuem dois retornos, a operação do método caso esse faça alguma alteração no objeto, ou o valor nil (nulo) caso não haja nenhuma alteração.

image

Os métodos sem pontuação, chamados de métodos seguros, por sua vez, agem no objeto criando uma cópia do mesmo na memória e modificando essa cópia, assim preservando o objeto original.

image

Bom, espero ter ajudado, fiquem à vontade para adicionar mais informações!

Grande abraço!

Compartilhe
Comentários (2)
Higor Melo
Higor Melo - 24/08/2022 11:48

Ótima explicação

Rodrigo Satyro
Rodrigo Satyro - 24/06/2021 19:48

Muito bom :D!