"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > فهم مطابقة الأنماط في جافا

فهم مطابقة الأنماط في جافا

تم النشر بتاريخ 2024-07-31
تصفح:598

Understanding Pattern Matching in Java

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

ما هي مطابقة الأنماط؟

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

فوائد مطابقة الأنماط

  1. رمز موجز: يقلل من التعليمات البرمجية المعيارية، مما يجعل برامجك أقصر وأسهل في القراءة.
  2. تحسين إمكانية القراءة: يعزز وضوح التعليمات البرمجية الخاصة بك عن طريق جعل البنية أكثر وضوحًا.
  3. سلامة النوع: يضمن كتابة المتغيرات بشكل صحيح، مما يقلل من احتمالية حدوث أخطاء أثناء التشغيل.

مطابقة الأنماط مع مثيل

أحد الاستخدامات الأكثر شيوعًا لمطابقة الأنماط هو استخدام مثيل عامل التشغيل. إليك مثال:

public class PatternMatchingExample {
    public static void main(String[] args) {
        Object obj = "Hello, World!";

        if (obj instanceof String s) {
            System.out.println("The string is: "   s);
        } else {
            System.out.println("Not a string");
        }
    }
}

في هذا المثال، لا يقوم عامل التشغيل بالتحقق مما إذا كان obj عبارة عن سلسلة فحسب، بل يقوم أيضًا بإرسالها إلى سلسلة وربطها بالمتغير s في خطوة واحدة.

مطابقة الأنماط مع تعبيرات التبديل

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

public sealed class Shape permits Circle, Rectangle, Square {}

public final class Circle extends Shape {
    private final double radius;

    public Circle(double radius) {
        this.radius = radius;
    }

    public double radius() { return radius; }
}

public final class Rectangle extends Shape {
    private final double width, height;

    public Rectangle(double width, double height) {
        this.width = width;
        this.height = height;
    }

    public double width() { return width; }
    public double height() { return height; }
}

public final class Square extends Shape {
    private final double side;

    public Square(double side) {
        this.side = side;
    }

    public double side() { return side; }
}

public class PatternMatchingWithSwitch {
    public static void main(String[] args) {
        Shape shape = new Circle(5);

        String result = switch (shape) {
            case Circle c -> "Circle with radius "   c.radius();
            case Rectangle r -> "Rectangle with width "   r.width()   " and height "   r.height();
            case Square s -> "Square with side "   s.side();
        };

        System.out.println(result);
    }
}

في هذا المثال، يستخدم تعبير التبديل مطابقة النمط لتدمير كائنات الشكل واستخراج البيانات ذات الصلة.

خاتمة

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

بيان الافراج تم نشر هذه المقالة على: https://dev.to/adaumircosta/understanding-pattern-matching-in-java-3f0k?1 إذا كان هناك أي انتهاك، يرجى الاتصال بـ [email protected] لحذفه
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3