"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > Kotlin Null Safety vs. Java: كوميديا ​​من الأخطاء (لكن في الغالب في Java)

Kotlin Null Safety vs. Java: كوميديا ​​من الأخطاء (لكن في الغالب في Java)

تم النشر بتاريخ 2024-11-17
تصفح:408

Kotlin Null Safety vs. Java: A Comedy of Errors (But Mostly in Java)

آه، Kotlin Null Safety مقابل Java! مواجهة كلاسيكية، مثل Godzilla vs. Mothra، ولكن مع عدد أقل من الوحوش المدمرة للمدينة ومزيد من الرهبة الوجودية حول... حسنًا، لا شيء. ?

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

يعد نهج Java "أي شيء يمكن أن يكون فارغًا في أي وقت" موضع ترحيب مثل مودم الاتصال الهاتفي في عالم 5G. أدخل Kotlin، صديق مبرمج الأبطال الخارقين، هنا لإنقاذ اليوم (وسلامتك العقلية) من خلال ميزة Null Safety المذهلة!

خطأ المليار دولار (وليس Clickbait!)

NullPointerException هي لعنة وجود مطور Java. إنها مثل قطع LEGO الصغيرة تلك التي تدوس عليها في منتصف الليل - صغيرة ولكنها قادرة على التسبب في ألم شديد.

في الواقع، وصف توني هور، الرجل الذي اخترع المرجع الفارغ، بأنه "خطأ بقيمة مليار دولار". (نعتقد أنه داس على الكثير من ألعاب LEGO.)

من ناحية أخرى، تتخذ Kotlin نهجًا استباقيًا. إنه مثل تلك النعال المريحة التي ترتديها لتجنب الدوس على قطع LEGO. مع خاصية Null Safety في Kotlin، يصبح المترجم نفسه حارسًا يقظًا، ويمنع القيم الخالية من التسلل إلى التعليمات البرمجية الخاصة بك وإحداث الفوضى.

كيف تفعل Kotlin ذلك (حرق: إنه رائع جدًا)

في Kotlin، عليك أن تخبر المترجم بشكل صريح ما إذا كان المتغير يمكن أن يكون خاليًا عن طريق إضافة ؟ إلى إعلان النوع. على سبيل المثال:

// Kotlin
var name: String? = null // This variable can be null
var age: Int = 42        // This variable cannot be null

بهذه البساطة؟ يشبه علامة تحذير: "احذر! قد تكون القيم الخالية كامنة هنا!" وإذا حاولت القيام بشيء محفوف بالمخاطر باستخدام متغير لاغٍ، فسيوقفك مترجم Kotlin في مساراتك برسالة خطأ. إنه مثل وجود حارس شخصي لرمزك، إلا أن هذا الحارس الشخصي جيد حقًا في القواعد النحوية وبناء الجملة.

حركة جافا المضادة (تحاول، بارك قلبها)

حاولت Java، في إصداراتها الأحدث، اللحاق بميزات مثل الاختيارية. إنه جهد شجاع، يشبه إلى حد ما محاولة جدك تعلم TikTok. إنه يقصد جيدًا، لكن الأمر ليس هو نفسه تمامًا. يمكن أن يكون الخيار الاختياري مرهقًا ولا يوفر نفس مستوى أمان وقت الترجمة الذي توفره Kotlin's Null Safety.

// Java
import java.util.Optional;

public class OptionalExample {

    public static void main(String[] args) {
        // Creating an Optional object

        Optional name = Optional.of("John Doe"); 

        // Checking if a value is present
        if (name.isPresent()) {
            System.out.println("Name is present: "   name.get()); 
        } else {
            System.out.println("Name is absent");
        }

        // Using orElse to provide a default value
        String defaultName = name.orElse("Unknown"); 
        System.out.println("Name: "   defaultName);

        // Using orElseGet to provide a default value with a supplier
        String anotherDefaultName = name.orElseGet(() -> "Another Unknown");
        System.out.println("Name: "   anotherDefaultName);
    }
}

في الختام (الجزء الذي يتخطاه الجميع)

تُعد ميزة Null Safety من Kotlin بمثابة تغيير في قواعد اللعبة. فهو يجعل التعليمات البرمجية الخاصة بك أكثر أمانًا وإيجازًا وأقل عرضة لتلك NullPointerException المخيفة. لذا، إذا سئمت من قتال العناصر الفارغة وكأنهم الزعيم الأخير في لعبة فيديو، فقد يكون الوقت قد حان للتبديل إلى Kotlin. سوف عقلك شكرا لك. ?

ملاحظة: إذا كنت لا تزال على الحياد، فقط تخيل هذا: عالم حيث لن تضطر أبدًا إلى تصحيح أخطاء NullPointerException أخرى. يبدو وكأنه الجنة، أليس كذلك؟ ?

بيان الافراج تم إعادة إنتاج هذه المقالة على: https://dev.to/hamada147/kotlin-null-safety-vs-java-a-comedy-of-errors-but-mostly-in-java-api?1 إذا كان هناك أي انتهاك يرجى الاتصال بـ Study_golang @163.comdelete
أحدث البرنامج التعليمي أكثر>

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

Copyright© 2022 湘ICP备2022001581号-3