[Newbies] pretty printing

Bert Freudenberg bert at freudenbergs.de
Sun Sep 28 17:12:57 UTC 2008


Am 28.09.2008 um 09:52 schrieb Randal L. Schwartz:

>>>>>> "Claus" == Claus Kick <claus_kick at web.de> writes:
>
> Claus> YourClass >> escape: aString
>
> Claus> "escapes a String"
>
> Claus> |result|
>
> Claus> result := ''.
> Claus> aString do:[:char | result := result, char xmlEscaped].
> Claus> ^result
>
> This is an expensive way to build a string.  #collect: would be  
> better:
>
> aString collect: [:char | char xmlEscaped].
>
> Internally, that uses a Stream, which extends itself nicely as new  
> data
> appears.  In your version, the early string data is getting  
> repeatedly copied
> to make each new string.  Ouch.


Err, #collect: constructs a string character by character, not from  
other strings. Double-ouch ;)

- Bert -




More information about the Beginners mailing list