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 پاسخ 313 بازدید
+2 امتیاز
2 پاسخ 394 بازدید
0 امتیاز
1 پاسخ 391 بازدید
سوال شده 8 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
+1 امتیاز
1 پاسخ 309 بازدید
0 امتیاز
1 پاسخ 343 بازدید
+1 امتیاز
1 پاسخ 400 بازدید
سوال شده 9 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
+1 امتیاز
2 پاسخ 370 بازدید
0 امتیاز
1 پاسخ 284 بازدید
0 امتیاز
1 پاسخ 368 بازدید
...