Avatar ·

ماذا يفعل العامل !! (double-bang) في Kotlin ولماذا هو مطلوب؟

مرحباً بالجميع! لقد بدأت للتو في تعلم Kotlin بعد Java وصادفت العامل الغريب `!!`. على سبيل المثال، رأيت هذا الكود: ```kotlin val name: String? = getUserName() val length = name!!.length ``` أفهم أن `?` تعني أن المتغير يمكن أن يكون null. لكن لماذا نحتاج `!!`؟ يبدو أنني إذا كنت متأكداً من أن القيمة ليست null، يمكنني ببساطة استخدام `?.` أو كتابة `if (name != null)`. وإذا أخطأت، سأحصل على NullPointerException - هذا سيء! في Java، اعتدت التحقق من null باستخدام `if`، ولكن هنا عامل عدواني. ربما هو حل مؤقت لمن يتكاسلون عن كتابة التحقق؟ أم هناك حالات يكون فيها `!!` مبرراً حقاً؟ اشرحوا لي، من فضلكم، ما الغرض منه، وكيف يعمل، وهل يستحق استخدامه في المشاريع الحقيقية. أمثلة الكود مرحب بها. <<>>

ما هو العامل `!!` (double-bang)؟

العامل !! في Kotlin يُسمى "عامل تأكيد عدم الخلو من القيمة" (not-null assertion operator). هو