【发布时间】:2019-04-14 12:09:33
【问题描述】:
可以将Vec<u32> 借入&Vec<u32> 或&[u32]。我认为这要归功于 AsRef 或 Borrow 特征。但是,我无法在我自己的自定义类型上实现这种借用。我在这里叫错树了吗?
use std::borrow::Borrow;
struct MyArray([u32; 5]);
impl MyArray {
fn new() -> MyArray {
MyArray([42; 5])
}
}
impl AsRef<[u32]> for MyArray {
fn as_ref(&self) -> &[u32] {
&self.0
}
}
impl Borrow<[u32]> for MyArray {
fn borrow(&self) -> &[u32] {
&self.0
}
}
fn main() {
let ma = MyArray::new();
let _: &[u32] = &ma; // compilation failure
}
【问题讨论】:
标签: rust