Next Previous Contents

11. <2.3.1>: Mer om String

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.


Next Previous Contents