From: duerst@... Date: 2017-12-28T03:01:48+00:00 Subject: [ruby-core:84543] [Ruby trunk Bug#14251][Rejected] String insert changing value of other string Issue #14251 has been updated by duerst (Martin D��rst). Status changed from Open to Rejected This behavior is expected. Except for purely functional programming languages, the difference between references and values is important to understand in every programming language, even if at first, it may be surprising. ---------------------------------------- Bug #14251: String insert changing value of other string https://bugs.ruby-lang.org/issues/14251#change-69070 * Author: ricardovsilva (Ricardo Silva) * Status: Rejected * Priority: Normal * Assignee: * Target version: * ruby -v: 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux] * Backport: 2.3: UNKNOWN, 2.4: UNKNOWN, 2.5: UNKNOWN ---------------------------------------- ~~~ ruby foo = 'abc' bar = foo bar.insert(1, d) puts foo 'adbc' puts bar 'adbc' ~~~ The example above should only affect bar variable. It leads to an error by programmer. A bypass that I found is to do: ~~~ ruby foo = 'aaa' bar = String.new foo bar.insert(1, 'd') puts foo #aaa puts bar #adaa ~~~ -- https://bugs.ruby-lang.org/ Unsubscribe: