Khi viết mã với những đặc điểm bạn có thể đặt các đặc điểm trong một đặc điểm ràng buộc:Sự khác biệt giữa <T: Trait> Hộp <T> và & Trait/Box <Trait> là gì?
use std::fmt::Debug;
fn myfunction1<T: Debug>(v: Box<T>) {
println!("{:?}", v);
}
fn myfunction2<T: Debug>(v: &T) {
println!("{:?}", v);
}
fn main() {
myfunction1(Box::new(5));
myfunction2(&5);
}
Hoặc trực tiếp trong một loại Box
hoặc tham khảo:
use std::fmt::Debug;
fn myfunction3(v: Box<Debug>) {
println!("{:?}", v);
}
fn myfunction4(v: &Debug) {
println!("{:?}", v);
}
fn main() {
myfunction3(Box::new(5));
myfunction4(&5);
}
Những cung cấp cho các đầu ra tương tự. Vì vậy, sự khác biệt là gì?
(Câu hỏi này được lấy cảm hứng từ another question nơi đây chỉ là một trong một số khái niệm xen kẽ)