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

قابلیت Guards در pattern matching اسکالا چیست و چه کاربردی دارد؟

1 پاسخ

+1 امتیاز
قبل توسط (330 امتیاز)
ویرایش شده قبل توسط
 
بهترین پاسخ

گاهی اوقات اون پارامتری که قرار هست match بشود چند حالت مختلف داره در اینجا از If استفاده میشه در مثال زیر برای یک پارامتر سه وضعیت متفاوت داریم پس از if guard استفاده می کنیم:

def LCS(str1: String, str2: String): String = (str1, str2) match {
    case (s1, s2) if s1.length < 1 || s2.length < 1 => ""
    case (s1, s2) if s1.head == s2.head => s1.head.toString ++ LCS(s1.tail, s2.tail)
    case (s1, s2) =>
      def l1 = LCS(s1, s2.tail)
      def l2 = LCS(s1.tail, s2)
      if (l1.length > l2.length) l1 else l2
}

سوالات مشابه

0 امتیاز
1 پاسخ 435 بازدید
0 امتیاز
2 پاسخ 1.1هزار بازدید
0 امتیاز
0 پاسخ 933 بازدید
0 امتیاز
1 پاسخ 377 بازدید
+1 امتیاز
1 پاسخ 442 بازدید
0 امتیاز
1 پاسخ 452 بازدید
+1 امتیاز
1 پاسخ 781 بازدید
0 امتیاز
1 پاسخ 494 بازدید
0 امتیاز
1 پاسخ 401 بازدید
...