gpt4 book ai didi

rust - 清除和重用 Rust PathBuf 的跨平台方法是什么?

转载 作者:行者123 更新时间:2023-11-29 07:48:14 26 4
gpt4 key购买 nike

为了在处理大量文件系统路径时尽可能降低开销,我想避免为每个路径分配内存。有没有办法清除和重用 PathBuf

根据我在文档中找到的内容,在通过 PathBuf::push 处理绝对路径时(至少在 POSIX 系统上),重用 PathBuf 是可能的,但我还没有找到在处理相对路径时重用 PathBuf 的方法。

有没有办法以跨平台的方式执行此操作,或者我是否被迫以特定于平台的方式处理这些路径?

最佳答案

一种方法是将PathBuf 转换为其内部存储,清除它,然后将其转换回PathBuf。这不需要额外分配:

use std::path::PathBuf;

fn main() {
let path = PathBuf::from("../tmp");
let mut path = path.into_os_string();
path.clear();
let mut path = PathBuf::from(path);
path.push("../etc");
assert_eq!(path, PathBuf::from("../etc"));
}

( Permalink to the playground )

关于rust - 清除和重用 Rust PathBuf 的跨平台方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52475462/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com