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

نوع داده Either در Scala چیست و چه کاربردی دارد؟

1 پاسخ

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

تایپ Either و Try دو روش متفاوت برای مدیریت خطا ها در اسکالا به روش فانکشنال هستند.

در Try دو زیر تایپ Failure و Success داریم.کدی که باعث ایجاد exception میشه در Failure قرار می گیره.

 

parser(input) match {
  case Failure(exception) => s" ${exception.message}"
  case Success(result) => do something
}

در کد بالا اگر ورودی معتبر بود عملیات مربوط به Success انجام می شود.اما اگر ایجاد خطا کنه Failure اجرا می شه.

در Either عملیات نامعتبر exception ایجاد نمی کند اما می خواهیم اون رو مدیریت کنیم.فرض کنید یک رشته json  رو پردازش کنیم.در بعضی کتابخانه ها مثل GSON اگر مقدار فیلد Null بود خطایی پرتاب نمی کنه پس باید راهی باشه این مقادیر از بقیه جدا کنیم و بعد مدیریت کنیم.از Either استفاده می کنیم.مقادیر درست در Right و نامطلوب در Left می ریزیم.

 

def validate(name: String): Either[String, String] = {
 if (name.isnull) Left("null")
 else Right(name)
 }

validate(name) match {
  case Left(error) =>  do something
  case Right(result) => s"Validation succeeded: $result"
}

 

سوالات مشابه

+1 امتیاز
1 پاسخ 1.4هزار بازدید
0 امتیاز
1 پاسخ 242 بازدید
سوال شده 4 سال قبل در برنامه نویسی توسط Saeed Zarinfam (1.1هزار امتیاز)
0 امتیاز
1 پاسخ 391 بازدید
0 امتیاز
1 پاسخ 832 بازدید
0 امتیاز
0 پاسخ 214 بازدید
0 امتیاز
1 پاسخ 279 بازدید
...