Project

General

Profile

Actions

Misc #17751

closed

Do these instructions (<<,+,[0..n]) modify the original string without creating copies?

Added by stiuna (Juan Gregorio) over 3 years ago. Updated over 3 years ago.

Status:
Closed
Assignee:
-
[ruby-core:103036]

Description

In my program a string increases considerably in size inside a loop, at the end of that loop a header is created that will have to go to the beginning of that string.

During the whole loop:

str << "some data"

At the end:

header = "other data"
str = header + str

I understand that using (+) creates a copy to then modify the original variable, that is not desirable, I would like to do something similar to (<<), which I understand does not create copies.

If I do this:

header << str

I would have two variables with a very large size.

I also have this other code and I don't know if it is an "in place" modifier:

str = "12345"
str[0..2] = ""
#s => 45

In short, I want to know what instructions I should use to remove a given range from a string and how to concatenate to both the beginning and end of the target string without having to create copies.

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0Like0Like0Like0Like0Like0Like0Like0