I가 기본적으로 다음과 같이 &[&Path]
을 받아 Vec<PathBuf>
과 기능을 반환 기능 :Vec <PathBuf> & [& Path] 할당하지 않았습니까?
use std::path::{Path, PathBuf};
fn f(paths: &[&Path]) {
}
fn main() {
let a: Vec<PathBuf> = vec![PathBuf::from("/tmp/a.txt"), PathBuf::from("/tmp/b.txt")];
f(&a[..]);
}
는 메모리 할당없이 &[&Path]
에 Vec<PathBuf>
을 변환 할 수 있습니까?
그렇지 않은 경우 Path
및 PathBuf
으로 슬라이스를 허용하도록 f
서명을 어떻게 변경해야합니까?
'f'를'fn f (경로 : & [PathBuf])'로 변경할 수 없습니까? 아직 슬라이스를 허용하고 있으므로 추가 할당이 필요하지 않습니다. –
@PeterHall 서명이'f' 인 우발적 인 것이 아니라,'Vec <&Path>'도 전달합니다. – user1244932
Path, PathBuf, Vec 및 []에 대해 일반화하려는 경우 'T, I where T : Iterator- , I : AsRef
' –
the8472