ddm*_*min 5 generics struct rust
我有一个 struct Character,它采用通用类型 T。我无法弄清楚如何实现 Character 的 fmt::Display 特征。这是我尝试过的:
pub struct Character<T> {
pub name: String,
pub level: u32,
pub class: T,
pub attack: i32,
pub defense: i32,
pub speed: i32,
}
impl fmt::Display for Character<T> {
// Display trait for Player
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "[{}] {} (Lv {})", self.class, self.name, self.level)
}
}
Run Code Online (Sandbox Code Playgroud)
该错误表明在该行的范围内找不到 Timpl fmt::Display for Character<T>
我试着寻找你会如何做到这一点,但我无法弄清楚。
phi*_*mue 13
use std::fmt;
impl<T> fmt::Display for Character<T>
where
T: fmt::Display,
{
// Display trait for Player
fn fmt(&self, f: &mut std::fmt::Formatter) -> fmt::Result {
write!(f, "[{}] {} (Lv {})", self.class, self.name, self.level)
}
}
Run Code Online (Sandbox Code Playgroud)
impl<T>指出以下是通用事物的实现(就像Character)where T: std::fmt::Display要求T实现Display. 这是必需的,因为您想要write self.class,其类型为T