コピーして設定する with

値をコピーしつつ、特定の方法で変更も行う場合に with が使われます。

with は「<value> のようなものだが、何かが異なる」という意味です。

// 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 は変更されません。