我尝试使用一个简单的函数时遇到了这个编译器错误。实际原因是什么?在我的情况下(以下代码),在生命周期参数之前写类型参数没有任何效果。编译器不应该更明智吗?
use std::fmt::Debug;
fn random_func<T : Debug, 'a>(parameter : &'a mut T) {
println!("{:?}", parameter);
}
fn main(){
let mut name : String = "random".to_string();
random_func(&mut name);
println!("{:?}", "compiled successfully");
}
错误:
life_time_trait.rs:3:27: 3:29 error: lifetime parameters must be declared prior to type parameters
life_time_trait.rs:3 fn random_func<T : Debug, 'a>(parameter : &'a mut T) {
^~