On 6/4/07, Robert Klemme <shortcutter / googlemail.com> wrote:
> On 04.06.2007 13:28, Robert Dober wrote:

> Robert, actually string[n..-1] is cheaper than you might assume: I
> believe the new string shares the char buffer with the old string, so
> you basically just get a new String object with a different offset - the
> large bit (the char data) is not copied.
I am afraid that this is not true anymore when the slice is passed as
a formal parameter, the data has to be copied :(

irb(main):011:0> def change(x)
irb(main):012:1> x << "changed"
irb(main):013:1> end
=> nil
irb(main):014:0> a="abcdef"
=> "abcdef"
irb(main):015:0> change(a[1..2])
=> "bcchanged"
irb(main):016:0> a
=> "abcdef"

Cheers
Robert
-- 
You see things; and you say Why?
But I dream things that never were; and I say Why not?
-- George Bernard Shaw