Информация об изменениях

Сообщение Re[10]: Язык Go - слабые стороны от 16.02.2022 12:09

Изменено 16.02.2022 12:11 ononim

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