String
-klassen i Ruby fungerer ikke slik som Java sin String-klasse, hvor man ikke kan endre et strengobjekt.
1| # String objekter kan endres: 2| navn = "Ola Nordmann" 3| 4| # Kjønnsoperasjon? 5| nyttnavn = navn.sub("Ola", "Oline") 6| 7| # sub lager ett nytt String-objekt. 8| puts nyttnavn #=> "Oline Nordmann" 9| puts navn #=> "Ola Nordmann" 10| 11| # sub! (sub-bang) endrer selve strengobjektet 12| nyttnavn = navn.sub!("Ola", "Oline") 13| puts nyttnavn #=> "Oline Nordmann" 14| puts navn #=> "Oline Nordmann" |
Legg merke til at sub
generer et helt nytt String
-objekt, mens sub!
endrer det faktiske objektet.
Metoder som slutter med utropstegn kalles "bang" eller "destruktive" metoder da de endrer objektet.