इस कोड को संकलित करता है और काम है, लेकिन मेरी समझ के अनुसार, यह संकलन नहीं करना चाहिए:यह जीवनकाल बाध्य क्यों नहीं करता है?
use std::fmt::Display;
pub fn test<S>(s: S)
where
S: Display + 'static,
{
println!("test: {}", s);
}
fn main() {
let s = String::from("string");
test(s);
}
चर s
के जीवनकाल main
में है, लेकिन समारोह test
एक बाध्य है कि S
'static
होना चाहिए। मुझे लगता है कि परिवर्तनीय s
का जीवन 'static
होना चाहिए या 'static
से बड़ा होना चाहिए। मेरे तर्क के साथ क्या गलत है?