📦 Data Class در کاتلین؛ بیشتر از یک کلاس ساده!
تا حالا شده کلاسهایی بسازید که فقط داده حمل میکنند و مجبور باشید متدهای «toString» و «equals» رو دستی بنویسید؟ 😫
با «Data Class» دیگه این کارها رو کاتلین خودش براتون انجام میده!
✅ کاربرد اصلی: مدلهای ساده مثل کاربر، محصول یا پاسخ API
✅ فقط کافیه کلمه کلیدی «data» رو قبل از «class» بذارید تا کاتلین بهطور خودکار این متدها رو تولید کنه:
- «toString»
- «equals» و «hashCode»
- «copy» برای کپی کردن با تغییر بعضی فیلدها
🧩 مثال عملی: فرض کنید مدل کاربر رو با فیلدهای name, email, age دارید.
حالا میتونید کد زیر رو اجرا کنید:
📌 توضیح کد:
- با تعریف «data class» نیازی به نوشتن «toString» ندارید.
- متد «copy» به راحتی یک کپی با تغییر دلخواه میسازه.
- این قابلیت در معماری «MVVM» و لایه «Repository» خیلی به کار میاد.
🎯 نکته مهم: «Data Class» حداقل باید یک پارامتر در «Primary Constructor» داشته باشه.
در پروژههای واقعی، مدلهای API، موجودیتهای پایگاه داده و یا وضعیتهای UI رو حتماً با «Data Class» بسازید.
#Codeit #Android #Kotlin #Jetpack #DataClass #CleanCode #MobileDevelopment
🌐 Codeit → https://code-it.ir
━━━━━━━━━━━━━━━
@CodeitMobile
تا حالا شده کلاسهایی بسازید که فقط داده حمل میکنند و مجبور باشید متدهای «toString» و «equals» رو دستی بنویسید؟ 😫
با «Data Class» دیگه این کارها رو کاتلین خودش براتون انجام میده!
✅ کاربرد اصلی: مدلهای ساده مثل کاربر، محصول یا پاسخ API
✅ فقط کافیه کلمه کلیدی «data» رو قبل از «class» بذارید تا کاتلین بهطور خودکار این متدها رو تولید کنه:
- «toString»
- «equals» و «hashCode»
- «copy» برای کپی کردن با تغییر بعضی فیلدها
🧩 مثال عملی: فرض کنید مدل کاربر رو با فیلدهای name, email, age دارید.
data class User(
val name: String,
val email: String,
val age: Int
)
حالا میتونید کد زیر رو اجرا کنید:
val user1 = User("Ali", "ali@example.com", 25)
println(user1) // User(name=Ali, email=ali@example.com, age=25)
val user2 = user1.copy(age = 30)
println(user2) // User(name=Ali, email=ali@example.com, age=30)
📌 توضیح کد:
- با تعریف «data class» نیازی به نوشتن «toString» ندارید.
- متد «copy» به راحتی یک کپی با تغییر دلخواه میسازه.
- این قابلیت در معماری «MVVM» و لایه «Repository» خیلی به کار میاد.
🎯 نکته مهم: «Data Class» حداقل باید یک پارامتر در «Primary Constructor» داشته باشه.
در پروژههای واقعی، مدلهای API، موجودیتهای پایگاه داده و یا وضعیتهای UI رو حتماً با «Data Class» بسازید.
#Codeit #Android #Kotlin #Jetpack #DataClass #CleanCode #MobileDevelopment
🌐 Codeit → https://code-it.ir
━━━━━━━━━━━━━━━
@CodeitMobile
❤1👍1🔥1