ExpertiDict

Ruby · Essencial · Português · Informal

método bang

/ˈmɛtodu ˈbɐ̃ŋɡi/substantivo

Método cujo nome termina em ! e que costuma ter uma versão sem ela. A versão com bang geralmente altera o objeto no lugar ou é mais perigosa.

Onde usar

Aparece em upcase!, map! e save!. No code review, confira o retorno: muitos métodos bang devolvem nil quando nada muda, e no Rails o save! lança exceção em vez de devolver false.

Em código

s = "ruby".dup
p s.upcase  # => "RUBY"
p s  # => "ruby"
s.upcase!
p s  # => "RUBY"
p s.upcase!  # => nil (nada mudou)

Exemplos

Use o método bang só quando quiser mudar a string original.

O save com bang estoura exceção se a validação falhar.

Cuidado

O ! é só convenção de nome e não faz nada sozinho: nem todo método perigoso tem bang, e nem todo bang altera o objeto.

Sinônimos

método perigoso

Veja também

Todos os termos de Ruby