Destructive method in ruby

Distructive methods are used to change the object value permanently by itself using bang (!) operator.

‘sort’ returns a new array and leaves the original unchanged.

‘sort!’ returns the same array with the modification.

myval = [‘phy’, ‘chem’, ‘bio’]
#myval is of type Array.

myval.reverse returns [“bio”, “chem”, “phy”] but the dont alter the object

p myval

#[‘phy’, ‘chem’, ‘bio’]

# this method altered the object.

p myval

#[“bio”, “chem”, “phy”]

 The ‘!’ indicates it’s a destructive method. It will overwrite the current array with the new result and returns it.