MST

星途 面试题库

面试题:复杂场景下 Rust 泛型结构体类型推导与约束

创建一个泛型结构体 `Stack`,用于模拟栈数据结构,它有一个泛型的 `Vec` 来存储元素。实现 `push` 方法用于将元素压入栈,`pop` 方法用于从栈中弹出元素。现在假设要实现一个功能,只有当栈中元素类型实现了 `Copy` 特征时,才允许执行 `pop` 操作,并且在调用 `pop` 时要正确利用类型推导机制,不引起任何编译错误,请写出完整的代码实现。
34.5万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
struct Stack<T> {
    elements: Vec<T>,
}

impl<T: Copy> Stack<T> {
    fn new() -> Self {
        Stack { elements: Vec::new() }
    }

    fn push(&mut self, element: T) {
        self.elements.push(element);
    }

    fn pop(&mut self) -> Option<T> {
        self.elements.pop()
    }
}