我找到了std::borrow::BorrowMut的定义:
pub trait BorrowMut<Borrowed>: Borrow<Borrowed>
where
Borrowed: ?Sized,
{
fn borrow_mut(&mut self) -> &mut Borrowed;
}
Sized
前面的问号是什么意思在这个类型参数绑定( Borrowed: ?Sized
)?
我咨询过:
-
The Rust Reference²,还有
堆栈溢出
但没有找到解释 . 请在答案中提供参考 .
¹特别参见第5.20节特征
²和6.1.9部分特征
1 回答
这意味着特征是可选的 . 当前语法是在DST syntax RFC中引入的 .
我所知道的唯一适用于
?
的特征是Sized
.在这个具体的例子中,我们可以为未确定的类型实现
BorrowMut
,比如[T]
- 注意这里没有&
!一个内置实现利用了:
如Matthieu M. adds: