Tôi tìm thấy định nghĩa cho std::borrow::BorrowMut
:Dấu chấm hỏi có ý nghĩa gì trong một tham số kiểu bị ràng buộc?
pub trait BorrowMut<Borrowed>: Borrow<Borrowed>
where
Borrowed: ?Sized,
{
fn borrow_mut(&mut self) -> &mut Borrowed;
}
không dấu hỏi trước Sized
có ý nghĩa gì trong tham số này loại ràng buộc (Borrowed: ?Sized
)?
tôi tham khảo ý kiến:
- The Rust Programming Language cuốn sách ¹,
- The Rust Reference ², và cũng
- What does "Sized is not implemented" mean? trên Stack Overflow
nhưng không tìm thấy một lời giải thích. Vui lòng đưa ra một tham chiếu trong câu trả lời của bạn.
¹ đặc biệt là xem phần 5.20 Traits
² và phần 6.1.9 Traits
Cụ thể: đây là trường hợp * giới hạn mở rộng *; trong giới hạn chung áp đặt * nhiều hơn * ràng buộc tuy nhiên trong trường hợp của 'Sized' nó đã được quyết định rằng trừ khi có ghi chú chung' T' sẽ được giả định là 'Sized' và cách để lưu ý nó sẽ được đánh dấu nó'? '(có thể là' có kích thước '). –