آموزش دونه:مرجع آموزش

کلاس های داده در کاتلین (Kotlin Data Class) آموزش برنامه نویسی کاتلین kotlin

کلاس های داده

Kotlin Data Class

خیلی از مواقع لازم است کلاسی داشته باشیم که صرفاً داده‌هایی را نگه‌داری کند. کاتلین برای چنین شرایطی data class را معرفی کرده است. در واقع برای اینکه بتوانید یک کلاس داده ایجاد کنید کافی است کلمه data را قبل از آن بیاورید:

برای این نوع کلاس‌ها، کامپایلر به صورت توابع زیر را ایجاد می‌کند:

  • توابع ()copy و ()equals و ()hashCode و ()toString به صورت خودکار پیاده‌سازی می‌شود؛
  • تابع ()componentN نیز ساخته می‌شود.

قبل از بررسی دقیق‌تر، ابتدا شرایط لازم برای ساخت کلاس‌های داده را در کاتلین معرفی کنم:

  • سازنده اولیه حداقل باید یک پارامتر داشته باشد؛
  • پارامترهای سازنده اولیه باید با علامت val (فقط خواندنی) یا var (خواندنی/نوشتنی) علامت بخورند؛
  • کلاس‌های داده نمی‌تواند open, abstract, inner یا sealed باشند؛
  • کلاس‌های داده می‌توانند سایر کلاس‌ها یا اینترفیس‌ها را پیاده‌سازی کنند. اگر از کاتلین نسخه قبل از ۱٫۱ استفاده می‌کنید، تنها امکان پیاده‌سازی اینترفیس وجود دارد.

مثال از Data Class در کاتلین

خروجی:

هنگام تعریف کلاس داده، کامپایلر به صورت خودکار چندین تابع تحت عنوان ()toString(), equals(), hashcode درست می‌کند. این توابع در کلاس دیده نمی‌شوند ولی وجود دارند. این کار باعث خوانایی کد نیز می‌شود. اگر تا الان از جاوا استفاده کرده باشید، چنین کاری مستلزم کدنویسی اضافه است. بیایید نگاهی به هر یک از توابع فوق و کاربردشان بیندازیم:

Copying

با کمک تابع ()copy به راحتی می‌توانید کپی برابر اصلی از یک شی ایجاد کنید.

متد ()toString

این متد، یک فرم متنی از شی را به کاربر نشان می‌دهد.

()equals و ()hashCode

متد ()hashCode کد هش یک object را برمی‌گرداند. اگر دو آبجکت از هر حیث یکسان باشند، این متد مقدار عددی یکسانی را برمی‌‌گرداند. متد ()equals اگر دو شی یکسان باشند (یعنی اگر ()hashCode یکسانی داشته باشند) مقدار true و در غیراینصورت مقدار false را برمی‌گرداند.

Kotlin Data Class Kotlin Data Class Kotlin Data Class Kotlin Data Class Kotlin Data Class Kotlin Data Class Kotlin Data Class 

مطالب مرتبط