0Pricing
Java Academy · درس

استخدام var للمتغيرات المحلية

دعوا المصرّف يستنتج النوع

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

استنتاج النوع محليًا

بدءًا من Java 10، يمكنكم تعريف المتغيرات المحلية باستخدام var وترك المصرّف يستنتج النوع من تعبير التهيئة. وهذا ما يُسمى استنتاج النوع محليًا. ويظل المتغير محدد النوع بقوة.

أول استخدام لـ var

استبدلوا النوع الصريح بـ var عند إسناد قيمة. يرى المصرّف القيمة الحرفية ويستنتج النوع المناسب.

public class Main {
    public static void main(String[] args) {
        var message = "Hello";
        var count = 42;
        System.out.println(message + " " + count);
    }
}

‏var ليس تحديدًا ديناميكيًا للأنواع

لا يجعل var Java ذات تحديد ديناميكي للأنواع. فبمجرد استنتاج النوع، يصبح ثابتًا. وسيؤدي إسناد قيمة من نوع مختلف لاحقًا إلى خطأ في الترجمة.

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

استنتاج أنواع الكائنات

يعمل var مع الكائنات أيضًا. والنوع المستنتج هو النوع الذي يعيده تعبير التهيئة.

import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        var list = new ArrayList<String>();
        list.add("a");
        list.add("b");
        System.out.println(list);
    }
}

تقليل التكرار

لم يعد من الضروري كتابة الأنواع العامة الطويلة مرتين. يزيل var النوع المكرر على الطرف الأيسر.

import java.util.HashMap;

public class Main {
    public static void main(String[] args) {
        var scores = new HashMap<String, Integer>();
        scores.put("Alice", 90);
        System.out.println(scores);
    }
}

الاستنتاج من القيم المعادة للدوال

عندما تعيد دالة قيمة، يستخلص var نوع الإرجاع المُعلن تلقائيًا.

public class Main {
    static String greet() {
        return "Hi there";
    }
    public static void main(String[] args) {
        var g = greet();
        System.out.println(g.toUpperCase());
    }
}

‏var مع الأنواع البدائية

تستنتج القيمة الحرفية الصحيحة النوع int، بينما تستنتج القيمة العشرية النوع double. انتبهوا إلى النوع البدائي الذي تحصلون عليه.

public class Main {
    public static void main(String[] args) {
        var i = 5;
        var d = 5.0;
        var b = true;
        System.out.println(i + " " + d + " " + b);
    }
}

لا يزال التحقق يتم وقت الترجمة

بما أن النوع معروف وقت الترجمة، يظل المصرّف يكتشف أخطاء الأنواع. فاستدعاء دالة من دوال String على قيمة int مستنتجة سيفشل في الترجمة.

public class Main {
    public static void main(String[] args) {
        var name = "Coddy";
        System.out.println(name.length());
    }
}

يجب التهيئة فورًا

يتطلب تعريف var تعبير تهيئة في السطر نفسه. إذ يحتاج المصرّف إلى قيمة ليستنتج النوع منها.

public class Main {
    public static void main(String[] args) {
        var total = 0;
        for (int i = 1; i <= 5; i++) {
            total += i;
        }
        System.out.println(total);
    }
}

يعمل مع المصفوفات

يمكنكم استنتاج نوع مصفوفة، ما دام تعبير التهيئة يوضح نوع العناصر.

public class Main {
    public static void main(String[] args) {
        var numbers = new int[]{1, 2, 3, 4};
        var sum = 0;
        for (var n : numbers) {
            sum += n;
        }
        System.out.println(sum);
    }
}

مثال عملي

يساعد الجمع بين استخدام var في برنامج صغير على إبقاء الشفرة مرتبة مع الحفاظ على تحديد الأنواع بالكامل.

import java.util.List;

public class Main {
    public static void main(String[] args) {
        var fruits = List.of("apple", "banana", "cherry");
        for (var fruit : fruits) {
            System.out.println(fruit.toUpperCase());
        }
    }
}

تحقق سريع

ما الوصف الأدق لطريقة عمل var في Java؟

مراجعة

لقد تعلمتم استخدام var للمتغيرات المحلية:

  • يستنتج المصرّف النوع من تعبير التهيئة
  • يظل المتغير محدد النوع بقوة وثابت النوع
  • يُشترط وجود تعبير تهيئة في السطر نفسه
  • يقلل التكرار مع الأنواع العامة الطويلة
  • يعمل مع الأنواع البدائية والكائنات والمصفوفات

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

هل درس «استخدام var للمتغيرات المحلية» مجاني؟

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

ماذا ستتعلم في «استخدام var للمتغيرات المحلية»؟

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

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

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

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

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

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

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

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

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