Avatar ·

ماذا يفعل العامل !! (علامة التعجب المزدوجة) في Kotlin ومتى يجب استخدامه؟

مرحبًا بالجميع! لقد بدأت للتو في تعلم Kotlin بعد Java ولا أستطيع فهم العامل `!!`. يبدو أن Kotlin يُشاد به لسلامة null، ولكن هنا علامة تعجب مزدوجة يمكنها، كما فهمت، أن تسبب NullPointerException. أكتب تطبيقًا صغيرًا للملاحظات. لدي دالة تبحث عن مستخدم بواسطة ID في قاعدة البيانات وتعيد اسمه. إذا لم يتم العثور على المستخدم، يتم إرجاع null. إليك مثال على الكود: ```kotlin fun getUserName(userId: Int): String? { // يُرجع null إذا لم يتم العثور على المستخدم return database.findUser(userId)?.name } ``` ثم أستدعي هذه الدالة وأريد عرض الاسم في TextView: ```kotlin val name = getUserName(123) textView.text = name // خطأ: Type mismatch. Required: String, Found: String? ``` يشتكي المترجم من أن name قد يكون null. وجدت على الإنترنت أنه يمكن استخدام `!!`: ```kotlin textView.text = name!! ``` لكني لا أفهم: لماذا إذن نحتاج إلى كل هذه السلامة null؟