我有一个函数,它AsRef<Path>作为一个参数,看起来像这样
fn test<P: AsRef<std::path::Path>>(path: P) {
path.join("13123123");
}
Run Code Online (Sandbox Code Playgroud)
当我编译它时,它给了我以下错误
fn test<P: AsRef<std::path::Path>>(path: P) {
path.join("13123123");
}
Run Code Online (Sandbox Code Playgroud)
试试这个:
path.as_ref().join("13123123")
Run Code Online (Sandbox Code Playgroud)
看:
fn main() {
let path = std::path::Path::new("./foo/bar/");
test(path);
}
fn test<P: AsRef<std::path::Path>>(path: P) {
println!("{:?}", path.as_ref().join("13123123"));
}
Run Code Online (Sandbox Code Playgroud)
输出:
path.as_ref().join("13123123")
Run Code Online (Sandbox Code Playgroud)
请参阅 的文档AsRef。