MST

星途 面试题库

面试题:Rust泛型结构体及方法实现

定义一个泛型结构体 `Pair`,它包含两个相同类型的成员。为 `Pair` 实现一个泛型方法 `swap`,该方法用于交换结构体中两个成员的值。同时,为 `Pair` 实现一个方法 `cmp`,当成员类型实现 `std::cmp::PartialOrd` trait 时,该方法返回两个成员中较大的那个值。
40.2万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
// 定义泛型结构体Pair
struct Pair<T> {
    first: T,
    second: T,
}

// 为Pair实现泛型方法swap
impl<T> Pair<T> {
    fn swap(&mut self) {
        std::mem::swap(&mut self.first, &mut self.second);
    }
}

// 为Pair实现方法cmp,当成员类型实现PartialOrd trait时
impl<T: std::cmp::PartialOrd> Pair<T> {
    fn cmp(&self) -> &T {
        if self.first >= self.second {
            &self.first
        } else {
            &self.second
        }
    }
}