Cow
的定义方式如下:
pub enum Cow<'a, B>
where
B: 'a + ToOwned + ?Sized,
{
Borrowed(&'a B),
Owned(<B as ToOwned>::Owned),
}
为什么B as ToOwned
在那儿?为了删除'a
和?Sized
的界限?
答案 0 :(得分:4)
它只是通过fully qualified syntax被显式显示。同样可以将其定义为
pub enum Cow<'a, B>
where
B: 'a + ToOwned + ?Sized,
{
Borrowed(&'a B),
Owned(B::Owned),
}
此语法是您访问B
的{{1}}实现的关联类型的方式。