MST

星途 面试题库

面试题:Rust类型别名与泛型结合实现代码复用

设计一个通用的排序函数,它可以对不同类型的数组进行排序。要求使用类型别名来简化泛型参数的定义,并且这些类型需要实现 `Ord` trait。请写出完整的代码实现,包括类型别名定义、函数声明以及至少两种不同类型数组的调用示例。
33.9万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
// 定义类型别名
type OrdArray<T> = Vec<T> where T: Ord;

// 通用排序函数
fn sort_array<T>(mut arr: OrdArray<T>) -> OrdArray<T>
where
    T: Ord,
{
    arr.sort();
    arr
}

fn main() {
    // 示例1:i32类型数组
    let mut int_arr: OrdArray<i32> = vec![3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5];
    let sorted_int_arr = sort_array(int_arr);
    println!("Sorted int array: {:?}", sorted_int_arr);

    // 示例2:String类型数组
    let mut string_arr: OrdArray<String> = vec!["banana".to_string(), "apple".to_string(), "cherry".to_string()];
    let sorted_string_arr = sort_array(string_arr);
    println!("Sorted string array: {:?}", sorted_string_arr);
}