MST

星途 面试题库

面试题:Rust数组比较:基础方法应用

在Rust中,给定两个数组`let arr1 = [1, 2, 3];`和`let arr2 = [1, 2, 3];`,请使用至少两种不同的方法判断这两个数组是否相等,并说明每种方法适用的场景。
27.6万 热度难度
编程语言Rust

知识考点

AI 面试

面试题答案

一键面试
  1. 使用==运算符

    • 代码示例
    fn main() {
        let arr1 = [1, 2, 3];
        let arr2 = [1, 2, 3];
        let are_equal = arr1 == arr2;
        println!("Are arrays equal: {}", are_equal);
    }
    
    • 适用场景:适用于简单的数组比较,当数组元素类型实现了PartialEq trait(大多数基本类型都实现了)时都可以使用。这种方法简单直接,适用于日常的数组相等性判断场景。
  2. 使用std::cmp::PartialEq::eq方法

    • 代码示例
    fn main() {
        let arr1 = [1, 2, 3];
        let arr2 = [1, 2, 3];
        let are_equal = arr1.eq(&arr2);
        println!("Are arrays equal: {}", are_equal);
    }
    
    • 适用场景:与使用==运算符类似,适用于数组元素类型实现了PartialEq trait的情况。在一些需要显式调用eq方法的场景(比如在自定义比较逻辑中调用),这种方式更合适。
  3. 逐个元素比较

    • 代码示例
    fn main() {
        let arr1 = [1, 2, 3];
        let arr2 = [1, 2, 3];
        let mut are_equal = true;
        if arr1.len() == arr2.len() {
            for i in 0..arr1.len() {
                if arr1[i] != arr2[i] {
                    are_equal = false;
                    break;
                }
            }
        } else {
            are_equal = false;
        }
        println!("Are arrays equal: {}", are_equal);
    }
    
    • 适用场景:当数组元素类型没有实现PartialEq trait,或者需要自定义比较逻辑时,可以使用这种方式。不过这种方式代码相对繁琐,在元素类型实现PartialEq的情况下,优先使用前两种方法。