0 امتیاز
قبل در برنامه نویسی توسط (1.1هزار امتیاز)

کاربرد case class ها در Scala چیست و چه تفاوتی با کلاس های معمولی دارد؟

2 پاسخ

0 امتیاز
قبل توسط (1.2هزار امتیاز)
کاربردشون در pattern maching ها هست.

وقتی کلاسی رو از جنس case class تعریف میکنید خود اسکالا میاد براش تابع apply و unapply رو بر اساس پارامترهای سازنده میسازه.
0 امتیاز
قبل توسط (1.1هزار امتیاز)

وقتی یک کلاس در Scala با استفاده از کلمه case تعریف می شود، کامپایلر Scala خصوصیات زیر را برای آن کلاس در نظر می گیرد، برای مثال کلاس زیر را در نظر بگیرید:

case class Var(name: String) 

یک factory متد با نام کلاس برای آن کلاس در نظر می گیرد که باعث می شوند ساختن شئ از آن کلاس آسان شود:

 val v = Var("x")

پارامتر های یک case class بصورت val و در قالب فیلد درون کلاس تعریف می شوند:

 v.name

کامپایلر Scala پیاده سازی های مناسبی از متد های equals، hashCode و toString برای کلاس قرار می دهد. پیاده سازی متد equals بصورت بازگشتی بوده و شامل تمام پارامتر های کلاس می شود و چون اپراتور  == همیشه متد equals را فراخوانی می کند مقایسه محتوای یک شئ که از case class ساخته شده است را آسان می سازد.

- کامپایلر Scala متدی با نام copy به case class ها اضافه می کند که اجازه می دهد یک کپی تغییر یافته از شئ مورد نظر داشته باشیم:

v.copy(name = "y")

- مهمترین کاربرد case class ها در Scala کاربرد آنها در Pattern matching است.

سوالات مشابه

0 امتیاز
1 پاسخ 350 بازدید
+2 امتیاز
2 پاسخ 442 بازدید
0 امتیاز
1 پاسخ 432 بازدید
سوال شده 9 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
+1 امتیاز
1 پاسخ 346 بازدید
0 امتیاز
1 پاسخ 381 بازدید
+1 امتیاز
1 پاسخ 440 بازدید
سوال شده 9 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
+1 امتیاز
2 پاسخ 422 بازدید
0 امتیاز
1 پاسخ 328 بازدید
0 امتیاز
1 پاسخ 408 بازدید
...