0Pricing
Learn Rust Coding · درس

الميزات والملفات التعريفية

الترجمة الشرطية

الميزات والملفات التعريفية درس مجاني في Learn Rust Coding على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Learn Rust Coding، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Learn Rust Coding 4 دروس في المجموع.

ما الميزات؟

تتيح لكم الميزات تفعيل أجزاء اختيارية من الحزمة أو تعطيلها وقت الترجمة. وتجعل الحزم مرنة، إذ لا يدفع المستدعون إلا تكلفة ما يستخدمونه.

التصريح عن الميزات

عرّفوا الميزات في جدول [features]. ويمكن لكل ميزة تفعيل ميزات أخرى أو تبعيات اختيارية.

[features]
default = ["json"]
json = []
fast_math = []

الترجمة الشرطية

احموا الشيفرة باستخدام السمة cfg كي تُترجم فقط عند تفعيل ميزة معينة.

#[cfg(feature = "json")]
fn export() {
    println!("Exporting as JSON");
}

fn main() {
    #[cfg(feature = "json")]
    export();
}

تفعيل الميزات

يفعّل المستدعون الميزات في تعريف التبعية أو عبر سطر الأوامر.

[dependencies]
my_lib = { version = "1.0", features = ["fast_math"] }

الميزات الافتراضية

تكون ميزة default مفعّلة تلقائيًا. عطّلوها باستخدام default-features = false لاختيار بناء minimal.

[dependencies]
my_lib = { version = "1.0", default-features = false }

الميزات عبر CLI

يمكنكم أيضًا تبديل الميزات لكل أمر من دون تعديل ملف البيان.

cargo build --features fast_math
cargo run --no-default-features
cargo test --all-features

ما هي ملفات التعريف؟

تتحكم ملفات التعريف في إعدادات المترجم، مثل مستوى التحسين ومعلومات التصحيح. وملفا التعريف المضمّنان هما dev (التصحيح) وrelease.

ملف تعريف dev

يستخدم cargo build ملف تعريف dev. وهو يفضّل سرعة الترجمة وسهولة التصحيح على سرعة التشغيل.

[profile.dev]
opt-level = 0
debug = true

ملف تعريف release

يفعّل ملف تعريف release (المستخدم مع --release) التحسينات للحصول على ملفات ثنائية سريعة.

[profile.release]
opt-level = 3
lto = true
strip = true

ضبط ملف تعريف

يمكنكم ضبط أي ملف تعريف بدقة. فعلى سبيل المثال، يمكنكم تفعيل قدر بسيط من التحسين في بنى dev لتسريع التشغيل، مع الحفاظ على سرعة ترجمة التبعيات.

[profile.dev]
opt-level = 1

[profile.dev.package."*"]
opt-level = 3

التبعيات الاختيارية كميزات

تنشئ التبعية الاختيارية ضمنيًا ميزة بالاسم نفسه. ويؤدي تفعيل الميزة إلى جلب التبعية، لذا يختار المستخدمون الحزم الأثقل فقط عند الحاجة.

[dependencies]
serde = { version = "1.0", optional = true }

[features]
serialize = ["dep:serde"]

تحقق سريع

ما السمة التي تترجم كتلة من الشيفرة فقط عند تفعيل ميزة؟

مراجعة

لقد تعلمتم أدوات الترجمة الشرطية:

  • يصرّح [features] عن الوظائف الاختيارية
  • تقيّد #[cfg(feature = ...)] الشيفرةَ وفق الميزة
  • يختار default-features = false البنى الدنيا
  • تتحكم ملفات التعريف مثل dev وrelease في إعدادات التحسين والتصحيح

الأسئلة الشائعة

هل درس «الميزات والملفات التعريفية» مجاني؟

نعم — نص درس «الميزات والملفات التعريفية» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Learn Rust Coding، انتقل إلى CoddyKit PRO. تتضمن دورة Learn Rust Coding 4 دروس في المجموع.

ماذا ستتعلم في «الميزات والملفات التعريفية»؟

الترجمة الشرطية تتمرن على Learn Rust Coding مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ Learn Rust Coding؟

لا تُشترط خبرة سابقة. Learn Rust Coding على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «الميزات والملفات التعريفية»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس Learn Rust Coding هذا؟

نعم. كل درس في Learn Rust Coding يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. أساسيات Cargo
  2. Cargo.toml
  3. مساحات العمل
  4. الميزات والملفات التعريفية
← العودة إلى Learn Rust Coding