面试题答案
一键面试-
使用
==
运算符- 代码示例:
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(大多数基本类型都实现了)时都可以使用。这种方法简单直接,适用于日常的数组相等性判断场景。
-
使用
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
方法的场景(比如在自定义比较逻辑中调用),这种方式更合适。
-
逐个元素比较
- 代码示例:
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
的情况下,优先使用前两种方法。