24
我发现std::borrow::BorrowMut
定义:问号在类型参数绑定中意味着什么?
pub trait BorrowMut<Borrowed>: Borrow<Borrowed>
where
Borrowed: ?Sized,
{
fn borrow_mut(&mut self) -> &mut Borrowed;
}
是什么在Sized
前面的问号意味着(Borrowed: ?Sized
)束缚,这类型参数?
我咨询:
- The Rust Programming Language¹书,
- The Rust Reference²,也
- What does "Sized is not implemented" mean?堆栈溢出
,但没有找到一个解释。请在答案中提供参考。
¹ 尤其见第5.20 Traits
² 和部分6.1.9 Traits
具体来说:这是一个扩大边界*的情况;在一般情况下,边界施加了更多的约束,但是在“Sized”的情况下,决定除非另有说明,否则通用的T将被认为是“Sized”,并且注意到标记它的方式是“Sized '(也许'Sized')。 –