لیست ها و Generics در دارت

تعداد بازدید ها : 1,086 بازدید
 لیست ها و Generics در دارت

در دارت هم همانند تمام زبان های سطح بالا ، جهت نظارت بر صحت اطلاعات وارد شده به لیست ها ، آرایه ها و مپ ها از جنریک استفاده می شود . جنریک به معنی وابسته کردن می باشد و در عمل جنریک کردن در واقع ما به متغییری که از نوع لیست تعریف شده است می گوییم که مجاز است به عنوان ورودی چه نوع دیتایی را دریافت نماید . این موضوع در هنگام استفاده از نرم افزار ، با تولید خطای مناسب ، جلو اشتباهات کاربری را می گیرید . به مثال زیر توجه نمایید :

void main() {
  var name = new List();
  
  name.add('Ali');
  name.add('Hesam');
  name.add(1234);
  name.add(true);
  
  print(name);
}

همان طور که در خط ۲ مشاهده می نمایید متغییر name از نوع لیست تعریف شده است و چون از قابلیت جنریک استفاده نشده است ، کامپایلر دارت به صورت پیش فرض برای متغییر ما نوع dynamic را در نظر گرفته است که در این حالت هر نوع داده ای قابلیت ثبت را دارد و خطایی تولید نمی شود .

شما می توانید به روش زیر متغییر name را به نوع داده String جنریک کرده تا از ورود اطلاعات از نوع int و bool جلوگیری نمایید :

void main() {
  var name = new List<String>();
  
  name.add('Ali');
  name.add('Hesam');
  name.add(1234);
  name.add(true);
  
  print(name);
}

در این حالت کاربر در خط های شماره ۶ و ۷ و در هنگام ثبت اطلاعات از نوع int و bool ، خطا دریافت نموده و از ثبت اطلاعات اشتباه جلوگیری می گردد . خروجی را در تصویر زیر مشاهده نمایید :

خروجی دستور جنریک لیست

در مپ ها نیز همین موضوع مصداق دارد . اگر ما در هنگام تعریف متغییر از نوع مپ ، نوع مقادیر key و value را مشخص نکنیم ، این مقادیر به صورت dynamic در نظر گرفته می شود و کاربر مجاز خواهد بود هر مقداری را در این متغییر ثبت نماید . به عنوان مثال به قطعه کد زیر توجه نمایید :

void main() {
  var name = {
    ۱ : 'Ali',
    ۲ : 'Reza',
    '۳' : ۱۲۳۴۵
  };
  
  print(name);
}

همان طور که در خط ۵ مشاهده می نماید ، کاربر نوع کلید را String و نوع دیتا را int ثبت نموده است و کامپایلر هم خطایی تولید نکرده است . قطعه کد بالا را به این روش می توان جنریک کرد :

void main() {
  var name = <int , String>{
    ۱ : 'Ali',
    ۲ : 'Reza',
    '۳' : ۱۲۳۴۵
  };
  
  print(name);
}

در این حالت کاربر در خط ۵ خطا دریافت کرده و به این وسیله از ثبت اشتباه اطلاعات جلوگیری می شود .

می خوانم   کار با Flutter Inspector

امیدوارم مطالعه این مطلب برای شما مفید باشد . به عنوان منبع می توانید از سایت اصلی دارت به این آدرس نیز استفاده نمایید .

2+
محمدمجتبی جوارشکیان

محمدمجتبی جوارشکیان

من محمدمجتبی جوارشکیان ، کارشناس IT و فعال اجتماعی هستم و در حوزه معماری ، طراحی ، تحلیل گری ، مدلسازی و توسعه ی محیط های نرم افزاری فعالیت دارم . بسیار خوشحال می شوم من را از انتقادات ، پیشنهادات و نظرات خود مطلع فرمایید . آدرس ایمیل : info@javareshkian.ir

ارسال یک پاسخ

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دوازده − سه =