with как копирование с изменением
with появляется, когда значение копируется, но при этом меняется определённым образом.
with в смысле «как <значение>, но с чем-то другим».
// Copyright 2025 Google LLC
// SPDX-License-Identifier: Apache-2.0
impl Path {
// Упрощённо. "/home/me/mortgage.pdf".with_extension("mov") =>
// "/home/me/mortgage.mov"
fn with_extension(&self, ext: &OsStr) -> PathBuf;
}
-
withможно использовать для методов, которые копируют значение, а затем меняют определённую его часть.В этом примере
with_extensionкопирует данные&Pathв новыйPathBuf, но меняет расширение на другое.Исходный
Pathостаётся неизменным.