我有一个接受泛型类型T的结构体Character。我无法想出如何为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)
}
}
错误提示显示在代码行
impl fmt :: Display for Character <T>
中,T在作用域中找不到。我已经尝试搜索如何解决此问题,但是我无法弄清楚。
Character<T>
)应该实现Display
,并不意味着T
也应该这样做,所以如果你只让Character<T> where T: Display
实现Display
,就不会出错了。 - Optimistic Peach