vsb>>Забавный факт. В жаве кажется до 8 версии substring работал именно так: был один общий массив символов и offset/length. Т.е. маленькая строка могла внутри держать массив на мегабайт, к примеру. Но потом поменяли на копирование. Pzz>Это очень такое Сишное поведение. Т.е., человек, для которого привычен Си, другого бы и не ждал.
Проблема в том что это поведение неочевидно из синтаксиса, как я уже писал гдето тут, если бы append принимал указатель на слайс, подвергающийся модификации — все было бы очевиднее. А он принимает слайс и возвращает слайс, причем тот слайс который он принимает остается в непредсказуемом для программиста состоянии. По сути — классическое сишное UB, просто без SIGSEGV.
Как много веселых ребят, и все делают велосипед...