with как конструктор
with в роли конструктора задаёт одно значение для типа, а для остальных используются значения по умолчанию.
with как в «<Тип> с конкретной настройкой».
// Copyright 2025 Google LLC
// SPDX-License-Identifier: Apache-2.0
impl<T> Vec<T> {
// Инициализирует память для как минимум N элементов, len по-прежнему 0.
fn with_capacity(capacity: usize) -> Vec<T>;
}
-
withможет быть префиксом конструктора, чаще всего при инициализации памяти в куче для типов-контейнеров.В этом случае он отличается от конструкторов
new, потому что задаёт значение для того, что обычно не интересует пользователей API. -
Спросите класс: почему не
from_capacity?Ответ:
Vec::with_capacityкак вызов метода хорошо читается как «Vec с ёмкостью». Подумайте, какVec::new_capacityилиVec::from_capacityчитаются на письме: они плохо передают смысл происходящего.