El signo de exclamación significa muchas cosas, y a veces no se puede distinguir mucho más que "esto es peligroso, tenga cuidado".
Como han dicho otros, en los métodos estándar a menudo se usa para indicar un método que hace que un objeto se mute a sí mismo, pero no siempre. Tenga en cuenta que muchos métodos estándar cambiar su receptor y no tienen un punto (exclamación pop
, shift
, clear
), y algunos métodos con los signos de exclamación no cambian su receptor ( exit!
). Ver este artículo por ejemplo.
Otras bibliotecas pueden usarlo de manera diferente. En Rails, un signo de exclamación a menudo significa que el método arrojará una excepción al fallo en lugar de fallar en silencio.
Es una convención de nomenclatura, pero muchas personas la usan de maneras sutilmente diferentes. En su propio código, una buena regla general es usarlo siempre que un método esté haciendo algo "peligroso", especialmente cuando existen dos métodos con el mismo nombre y uno de ellos es más "peligroso" que el otro. Sin embargo, "peligroso" puede significar casi cualquier cosa.