Avatar ·

ماذا تعني علامة التعجب في لغة Swift؟ مشكلة الأنواع الاختيارية

مرحبًا بالجميع! لقد بدأت للتو في تعلم Swift، وحدث لدي ارتباك بشأن علامة التعجب. رأيت أن `!` تُستخدم غالبًا بعد المتغيرات في الكود، لكنني لا أفهم تمامًا لماذا نحتاج إليها. هذا مثال وجدته في كتاب دراسي: ```swift var optionalString: String? = "Hello" print(optionalString!) // يطبع "Hello" ``` إذا أزلت علامة التعجب، فإن المترجم يعطي تحذيرًا بأن `optionalString` يجب فكها. لكن لماذا؟ فالمتغير يحتوي بوضوح على سلسلة نصية. حاولت كتابة الكود الخاص بي: ```swift var name: String? = "John" let greeting = "مرحبًا, " + name // خطأ: Value of optional type 'String?' must be unwrapped ``` لماذا لا يسمح Swift باستخدام القيمة ببساطة؟ وماذا يحدث إذا استخدمت `!` مع `nil`؟ سمعت أن هذا قد يسبب تعطلًا، لكنني لا أفهم كيف أتجنب ذلك. اشرح لي، من فضلك، بأمثلة بسيطة، ماذا تفعل علامة التعجب ومتى يجب استخدامها بشكل صحيح. سأكون ممتنًا لشرح مفصل.