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 پاسخ 308 بازدید
+2 امتیاز
2 پاسخ 389 بازدید
0 امتیاز
1 پاسخ 388 بازدید
سوال شده 8 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
+1 امتیاز
1 پاسخ 305 بازدید
0 امتیاز
1 پاسخ 335 بازدید
+1 امتیاز
1 پاسخ 394 بازدید
سوال شده 9 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
+1 امتیاز
2 پاسخ 365 بازدید
0 امتیاز
1 پاسخ 281 بازدید
0 امتیاز
1 پاسخ 367 بازدید
...