Next Previous Contents

11. <2.3.1>: Mer om String

String-klassen i Ruby fungerer ikke slik som Java sin String type, hvor man ikke kan endre et streng-objekt.

  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 streng objektet
 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 som oftest endrer objektet.
Ruby bruker denne konvensjonen for navngivelse på mange metoder.


Next Previous Contents