دلالات النقل في سويفت: مقارنة مع C++
2025-01-09
تتناول هذه المقالة أوجه التشابه والاختلاف بين دلالات النقل في سويفت و C++. يقوم سويفت تلقائيًا بتحسينات النقل، وهو أمر مفيد للأداء، لكنه قد يفاجئ مبرمجي C++ الذين اعتادوا على أسلوب RAII. أنواع "غير قابلة للنقل" في سويفت تشبه أنواع "النقل فقط" في C++، لكن عمليات النقل في سويفت مدمرة، مما يتجنب المشاكل المحتملة مع عمليات النقل "غير المدمرة" في C++. تقارن المقالة وظيفة `consume` في سويفت مع وظيفة `std::move` في C++، وتشرح تقصير أعمار المتغيرات، واتفاقيات تمرير المعلمات (`consuming`, `borrowing`, `inout`)، وقانون الحصرية في سويفت. وأخيرًا، تناقش المقالة استخدام الأنواع غير القابلة للنقل لـ RAII، والعامات، وأنواع النقل الشرطي في سويفت، ولماذا لا يدعم سويفت خاصية إعادة توجيه الكمال.
اقرأ المزيد