AsRef<Path>vs&Path
创始人
2024-09-20 13:30:47
0

Rust 中 AsRef 与 &Path 都可以用来传递 Path 类型的参数,它们之间的主要区别在于使用上的方便性与灵活性。

AsRef 需要首先将参数转换为 Path 类型,比如说:

use std::path::Path;
fn foo>(path: P) {
    let p = path.as_ref();
    // ...
}

而 &Path 直接使用即可,不需要进行转换,比如说:

use std::path::Path;
fn foo(path: &Path) {
    // ...
}

所以,对于只需要传递 Path 类型参数的函数,使用 &Path 会更加方便。而对于需要同时支持 PathBuf 类型和 &str 类型的函数,使用 AsRef 可以提供更大的灵活性。例如:

use std::path::{Path, PathBuf};
fn bar>(path: P) {
    let p = path.as_ref().to_path_buf();
    // ...
}

在这个函数中,路径参数可以是 &str 类型或者 PathBuf 类型,由于 AsRef 可以自动转换,所以这个函数可以接受这两种类型的参数。

相关内容

热门资讯

黑科技实锤(wepoke确实有... 黑科技实锤(wepoke确实有挂)外挂透视辅助下载(透视)果然有挂(黑科技解密)1、wepoke确实...
黑科技计算(德州之星辅助器怎么... 黑科技计算(德州之星辅助器怎么用)外挂透视辅助器(透视)都是真的有挂(黑科技解说);黑科技计算(德州...
黑科技好友房(wepoke挂真... 黑科技好友房(wepoke挂真的假的)外挂黑科技辅助安装(透视)其实有挂(黑科技方法);1、点击下载...
黑科技辅助挂(wepoke透明... 黑科技辅助挂(wepoke透明真的吗)外挂黑科技辅助助手(透视)其实是真的有挂(黑科技揭秘)1、we...
黑科技游戏(wpk有辅助插件吗... 黑科技游戏(wpk有辅助插件吗)外挂透视辅助下载(透视)好像真的有挂(黑科技脚本)运wpk有辅助插件...
黑科技总结(wepoke是不是... 黑科技总结(wepoke是不是有辅助)外挂透明挂辅助软件(透视)原来存在有挂(黑科技脚本);1、金币...
黑科技辅助(wpk透视外挂)外... 黑科技辅助(wpk透视外挂)外挂黑科技辅助方法(透视)真是有挂(黑科技方法)所有人都在同一条线上,像...
黑科技肯定(wpk透视外挂会怎... 黑科技肯定(wpk透视外挂会怎么样)外挂透视辅助安装(透视)好像是有挂(黑科技插件)1、玩家可以在w...
黑科技代打(德州ai机器人)外... 黑科技代打(德州ai机器人)外挂透明挂辅助助手(透视)切实有挂(黑科技解说)1、德州ai机器人ai辅...
黑科技挂(wepokeai代打... 黑科技挂(wepokeai代打逻辑)外挂透视辅助下载(透视)本来真的有挂(黑科技教程);1、进入游戏...