كيفية فرز متجه في Rust: دليل كامل مع أمثلة
مرحباً بالجميع! لقد بدأت للتو في تعلم Rust وواجهت مشكلة في فرز متجه. في لغات أخرى، مثل Python أو JavaScript، يتم ذلك بسطر واحد، لكنني هنا مرتبك تماماً.
لدي متجه من الأرقام:
```rust
let mut numbers = vec![5, 2, 8, 1, 9, 3];
```
أريد فرزه تصاعدياً. حاولت القيام بذلك:
```rust
numbers.sort();
```
لكن المترجم يعطي خطأ: "the trait `std::cmp::Ord` is not implemented for `i32`". على الرغم من أنني اعتقدت أنه يجب أن يعمل للأرقام بشكل افتراضي.
أيضاً لدي متجه من السلاسل النصية:
```rust
let mut fruits = vec!["banana", "apple", "cherry", "date"];
```
هنا الفرز لا يعمل على الإطلاق — المترجم يكتب عن الاقتراض والتحريك.
كما حاولت فرز الهياكل:
```rust
struct Person {
name: String,
age: u32,
}
let mut people = vec![
Person { name: "Alice".to_string(), age: 30 },
Person { name: "Bob".to_string(), age: 25 },
Person { name: "Charlie".to_string(),