面试题答案
一键面试// 定义一个包含关联类型的trait
trait Container {
// 关联类型
type Item;
fn push(&mut self, item: Self::Item);
fn pop(&mut self) -> Option<Self::Item>;
}
// 实现该trait的结构体
struct Stack<T> {
items: Vec<T>,
}
impl<T> Container for Stack<T> {
type Item = T;
fn push(&mut self, item: Self::Item) {
self.items.push(item);
}
fn pop(&mut self) -> Option<Self::Item> {
self.items.pop()
}
}