Avatar ·

أمثلة على استخدام run، let، apply، also و with في Kotlin: متى نستخدم أيًا منها؟

مرحبًا أيها الزملاء! بدأت في تعلم Kotlin ولا أستطيع فهم دوال التوسيع run، let، apply، also و with. في التوثيق مكتوب أنها تساعد في كتابة كود أنظف، لكني دائمًا أخلط بين أي منها أختار. على سبيل المثال، لدي كلاس بسيط User: ```kotlin data class User(var name: String, var age: Int, var email: String) ``` وأريد إنشاء نسخة، وتعديل حقولها، ثم طباعتها في السجل. جربت خيارات مختلفة: ```kotlin // الخيار 1 val user = User("", 0, "") user.name = "إيفان" user.age = 25 user.email = "ivan@mail.ru" println(user) // الخيار 2 val user = User("", 0, "").apply { name = "إيفان" age = 25 email = "ivan@mail.ru" } println(user) ``` يبدو أن apply يعمل، لكن عندما أحتاج إلى إرجاع نتيجة التحويل، أتوه. على سبيل المثال، إذا أردت الحصول على طول الاسم بعد التعديل: ```kotlin val length = User("", 0, "").let { it.name = "إيفان" it.name.length } ``` أو هذا أيضًا