Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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 читаются на письме: они плохо передают смысл происходящего.