[Ruby-de-talk] Performance-Frage - String zusammenbasteln
Stephan Kämper
Stephan.Kaemper at Schleswig-Holstein.de
Sun Aug 1 15:30:18 EDT 2004
Dirk Einecke wrote:
> Hi.
>
> Michael Neumann wrote:
>
>> Dirk Einecke wrote:
>>
>>> Ich habe ein Programm, bei dem ich haufenweise Strings
zusammenbastle. Nun gibt es dafür ja zwei Möglichkeiten:
>>>
>>> 1.
>>> newPath = ENV['DOCUMENT_ROOT'] + 'foo/bar/' + path
>>>
>>> 2.
>>> newPath = "#{ENV['DOCUMENT_ROOT']}foo/bar/#{path}"
>>
>>
>>
>> Also generell würde ich bei längeren strings << bevorzugen. #{}
scheint aber zumindest für kurze strings schneller zu sein.
>
>
>
> Was sind denn bei dir kurze Strings? Also bis zu wieviel "Komonenten"
die zusammengesetzt werden sollen? Kann an das so allgemein sagen?
>
> Bisher hatte ich sowas:
> path = p.directory + p.filename + '.rb'
>
> Würde nun
> path = "#{p.directory}#{p.filename}.rb"
> oder
> path = p.directory << p.filename << '.rb'
> besser sein?
>
String.<< hängt das Argument an den gegebenen String an und verändert
den Empfänger der Nachricht.
String.+ dagegen läßt den Empfänger der Methode unverändert und liefert
einen nagelneuen String. Das kostet natürlich ein wenig (Zeit und Speicher).
irb(main):001:0> a = 'a'
=> "a"
irb(main):002:0> a << 'b'
=> "ab"
irb(main):003:0> a
=> "ab"
irb(main):004:0> a + 'c'
=> "abc"
irb(main):005:0> a
=> "ab"
irb(main):006:0>
Hoffe das half. ;-)
Stephan
PS.: Sorry ich hatte das zunächst nur an Dirk gemailt, jetzt gehts auch
an die Mailingliste...
--
Stephan Kämper/IT-Beratung
Softwarequalitätssicherung, Softwaretest, Datenanalyse
Wulfsdorfer Weg 10
22926 Ahrensburg
Tel.: 04102 / 978 984
More information about the Ruby-de-talk
mailing list