أمثلة على استخدام 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
}
```
أو هذا أيضًا