РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
305 of 1245 menu

Метод fill_with

Метод fill_with заполняет весь изменяемый срез значениями, которые возвращает переданное замыкание. Параметром метод принимает замыкание, которое вызывается для каждого элемента среза и возвращает новое значение для этого элемента. Метод ничего не возвращает, а изменяет исходный срез на месте.

Синтаксис

slice.fill_with(|| value)

Пример

Давайте заполним срез vec![0, 0, 0, 0, 0] одним и тем же значением 7, используя замыкание:

fn main() { let mut res = vec![0, 0, 0, 0, 0]; res.fill_with(|| 7); println!("{:?}", res); }

Результат выполнения кода:

[7, 7, 7, 7, 7]

Пример

Давайте заполним срез vec![0, 0, 0, 0, 0] значениями, которые зависят от внешнего счётчика:

fn main() { let mut counter = 1; let mut res = vec![0, 0, 0, 0, 0]; res.fill_with(|| { let value = counter; counter += 1; value }); println!("{:?}", res); }

Результат выполнения кода:

[1, 2, 3, 4, 5]

Пример

Давайте заполним срез строк vec![""; 5] новыми строками:

fn main() { let mut res = vec![""; 5]; res.fill_with(|| "abcde"); println!("{:?}", res); }

Результат выполнения кода:

["abcde", "abcde", "abcde", "abcde", "abcde"]

Смотрите также

  • метод fill,
    который заполняет срез одним и тем же значением
  • метод iter,
    который возвращает итератор по элементам среза
  • метод to_vec,
    который копирует срез в новый вектор
  • метод slice,
    который представляет изменяемый срез элементов
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить