كيفية إنشاء دالة بعدد متغير من الوسائط في Rust؟
مرحباً بالجميع! لقد بدأت للتو في تعلم Rust بعد C++ وPython، وواجهت مشكلة. في C++ يمكنني كتابة دالة بعدد متغير من الوسائط باستخدام `...` (variadic templates)، وفي Python باستخدام `*args`. على سبيل المثال، أريد إنشاء دالة `sum_all` تجمع أي عدد من الأعداد الصحيحة:
```rust
// كيف يمكنني فعل ذلك في Rust؟
fn sum_all(...) -> i32 {
// شيء ما هنا
}
fn main() {
println!("{}", sum_all(1, 2, 3)); // 6
println!("{}", sum_all(10, 20, 30, 40)); // 100
}
```
قرأت أن Rust لا يدعم الدوال المتغيرة الكلاسيكية (variadic functions) كما في C. لكن هل هناك ماكرو (macros)؟ أو يمكنني استخدام الشرائح (slices)؟ لقد جربت تمرير vector، لكنه غير مريح - في كل مرة أحتاج إلى إنشاء `vec!`. هل هناك طريقة idiomatic لفعل ذلك في Rust؟ أحتاج تحديداً إلى حل.