0Pricing
Java Academy · درس

قيود var

المواضع التي لا يمكن استخدام var فيها

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

لـ var قواعد

يوفر var سهولة، لكنه محدود الاستخدام. فهو يعمل فقط مع المتغيرات المحلية التي لها قيمة تهيئة. ومعرفة المواضع التي لا يمكن استخدامه فيها توفر عليكم أخطاء ترجمة محبطة.

المتغيرات المحلية فقط

يُسمح باستخدام var فقط مع المتغيرات المحلية، أي داخل الأساليب والحلقات وغير ذلك. المثال أدناه صحيح لأن المتغير محلي.

public class Main {
    public static void main(String[] args) {
        var greeting = "OK for locals";
        System.out.println(greeting);
    }
}

ليس للحقول

لا يمكنكم استخدام var مع حقول الفئة. يجب أن تعلن الحقول عن نوع صريح. هنا، يُعد count حقلًا عاديًا.

public class Main {
    static int count = 0;
    public static void main(String[] args) {
        count = 5;
        System.out.println(count);
    }
}

ليس لمعاملات الأساليب

تحتاج معاملات الأساليب إلى أنواع صريحة. لا يُسمح باستخدام var في قائمة المعاملات، لذلك يعلن هذا الأسلوب عن String name مباشرةً.

public class Main {
    static void greet(String name) {
        System.out.println("Hi " + name);
    }
    public static void main(String[] args) {
        greet("Lee");
    }
}

ليس لأنواع الإرجاع

لا يمكن أن يكون نوع إرجاع الأسلوب هو var؛ بل يجب أن يكون صريحًا. لا يستنتج المترجم أنواع الإرجاع.

public class Main {
    static int square(int x) {
        return x * x;
    }
    public static void main(String[] args) {
        System.out.println(square(6));
    }
}

يجب أن تكون له قيمة تهيئة

لا يمكنكم كتابة var x; من دون قيمة. فمن دون قيمة تهيئة، لا يملك المترجم ما يستنتج منه النوع. احرصوا دائمًا على الإسناد مباشرةً.

public class Main {
    public static void main(String[] args) {
        var ready = true;
        System.out.println(ready);
    }
}

لا يمكن تهيئته بـ null

تفشل العبارة var x = null; لأن null لا يملك نوعًا محددًا. استخدموا بدلًا منه قيمة ذات نوع، مثل سلسلة نصية فارغة.

public class Main {
    public static void main(String[] args) {
        var text = "";
        text = "now has a value";
        System.out.println(text);
    }
}

لا اختصار لتهيئة المصفوفة

لا يمكنكم كتابة var nums = {1, 2, 3};. إذ يحتاج الاختصار باستخدام الأقواس المعقوفة إلى نوع مصفوفة معلن. استخدموا new int[]{...} بدلًا منه.

public class Main {
    public static void main(String[] args) {
        var nums = new int[]{1, 2, 3};
        System.out.println(nums.length);
    }
}

ليست كلمة محجوزة

من المثير للاهتمام أن var اسم نوع محجوز، وليس كلمة مفتاحية. ومع ذلك، لا يمكنكم تسمية فئة باسم var، لكن القاعدة محدودة النطاق. ومن الناحية العملية، تعاملوا معه كما تتعاملون مع أي صياغة حديثة.

public class Main {
    public static void main(String[] args) {
        var var2 = "identifiers can contain var";
        System.out.println(var2);
    }
}

لا تعبير lambda دون نوع هدف

لا يمكنكم إسناد تعبير lambda مجرد إلى var، لأن تعبير lambda يحتاج إلى نوع واجهة وظيفية مستهدف ليستنتج النوع منه. أعلنوا عن نوع الواجهة صراحةً.

import java.util.function.IntUnaryOperator;

public class Main {
    public static void main(String[] args) {
        IntUnaryOperator doubler = x -> x * 2;
        System.out.println(doubler.applyAsInt(21));
    }
}

خلاصة القيود

تذكروا الحدود: المتغيرات المحلية فقط، ويجب التهيئة، ولا يمكن استخدام null، ولا تعبير lambda مجرد، ولا اختصار الأقواس المعقوفة للمصفوفات، كما لا يُستخدم مع الحقول أو المعاملات أو أنواع الإرجاع.

public class Main {
    public static void main(String[] args) {
        var ok = 42;
        System.out.println("var is for locals: " + ok);
    }
}

تحقق سريع

أيّ مما يلي يمثل استخدامًا صحيحًا لـ var؟

خلاصة

لقد تعلمتم قيود var:

  • يُسمح باستخدامه فقط مع المتغيرات المحلية التي لها قيمة تهيئة
  • لا يُستخدم مع الحقول أو المعاملات أو أنواع الإرجاع
  • لا يمكن استنتاج النوع من null أو تعبير lambda مجرد
  • لا يمكن استخدام اختصار الأقواس المعقوفة للمصفوفات
  • هو اسم نوع محجوز، وليس كلمة مفتاحية

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

هل درس «قيود var» مجاني؟

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

ماذا ستتعلم في «قيود var»؟

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

هل أحتاج إلى خبرة سابقة لأبدأ Java Academy؟

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

كم من الوقت يستغرق درس «قيود var»؟

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

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

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

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

  1. استخدام var للمتغيرات المحلية
  2. متى تحسّن var قابلية القراءة
  3. var في حلقات for
  4. قيود var
← العودة إلى Java Academy