Вы продумываете формулировку здесь;«растущий» только означает, что он может расти.A String
, который первоначально выделил 3 байта для хранения "abc"
, может увеличиваться до 6 байтов, чтобы содержать "abcdef"
.Распределение памяти может стать больше (и меньше).Не существует определенной системы типов Rust, означающей слово «растущий».
Изменение емкости String
- это особый тип изменения, поэтому для роста строки вам нужен изменчивый String
.Вам также нужен изменяемый String
для других типов изменений, которые не связаны с изменением выделения.
Изменяемый фрагмент строки (&mut str
) - это тип строки, который не может стать длиннее или короче, но можетбыть изменены.
fn example(name: &mut str) {
name.make_ascii_uppercase()
}
См. также: