जब लक्षण के साथ कोड लिखने आप एक विशेषता बाध्य में विशेषता रख सकते हैं:<T: Trait> बॉक्स <T> और ट्रैट/बॉक्स <Trait> के बीच क्या अंतर है?
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);
}
या सीधे एक Box
या संदर्भ प्रकार में:
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);
}
ये वही उत्पादन दे। तो अंतर क्या है?
(यह सवाल another question से प्रेरित था जहां यह सिर्फ कई मिश्रित अवधारणाओं में से एक था)