[ruby-core:103058] [Ruby master Misc#17751] Do these instructions (<<, +, [0..n]) modify the original string without creating copies?
From:
cart4for1@...
Date:
2021-03-27 11:36:59 UTC
List:
ruby-core #103058
Issue #17751 has been updated by stiuna (Juan Gregorio).
I was looking for a FAQ on the site to see if it was allowed to open topics not related to bugs or improvements but I didn't find anything.
And about manipulating bits in a file I meant it literally, it's just as I said above, I think this would have avoided confusion:
``` ruby
file.writeSince(5, ["00111100011"].pack('B*'))
```
But I will go to the site you recommended (not StackOverflow), thanks for everything.
----------------------------------------
Misc #17751: Do these instructions (<<,+,[0..n]) modify the original string without creating copies?
https://bugs.ruby-lang.org/issues/17751#change-91119
* Author: stiuna (Juan Gregorio)
* Status: Closed
* Priority: Normal
----------------------------------------
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:
``` ruby
str << "some data"
```
At the end:
``` ruby
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:
``` ruby
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:
``` ruby
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.
--
https://bugs.ruby-lang.org/
Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>