💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۱۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۲ mahdi kaliani
unnamed constructor
جامعه فلاتر ایجاد شده در ۲۷ شهریور ۱۴۰۰

توی زبان‌های دیگه مثل جاوا میتونیم چندتا constructor بسازیم و توی هر constructor به صورت اختیاری property‌های مورد نیاز را از کاربر درخواست کرد اما توی زبان دارت نمیشه چندتا unnamed constructor داشت واز طرفی بخاطر null safety بودن دارت نمیشه به صورت اختیاری property از کاربر درخواست کرد 

به عنوان مثال کلاسی داریم که سه property دارد توی زبان جاوا میتونیم دو constructor داشته باشیم که یکی , دو property و دومی , سه property بگیره و بسته به نیاز کاربر از یکی از این دو constructor استفاده کنیم ولی به دلایل بالا این امکان در دارت وجود نداره 

راهی هست که بتونیم مثل زبان جاوا برخورد کنیم؟ یا باید setter و getter استفاده کرد!

سلام، شاید این پاسخ بتواند تا حدی به شما کمک کند، اگر درست منظور شما را متوجه شده باشم

Majed Al Mohandis ۲۷ شهریور ۱۴۰۰، ۱۱:۴۰

سلام وقت بخیر

امکان نوشتن چند unnamed constructor در زبان دارت وجود نداره و این کار رو باید توسط name constructor یا همون setter و getter هندل کنید البته Instance variable‌ها باید nullable باشند و این نکته رو هم بگم چون اوایل دوره هست به این شکله و باهاش راحت نیستیم به مرور زمان دلیل این کار و نحوه هندل کردن این موضوع رو متوجه میشیم

void main(){
  Car car1 = Car(1001,'BMW','Sport');
  Car car2 = Car.require(1002,'Benz');
  print(car2.type);
}
class Car{
  int id;
  String name;
  String? type;
  Car(this.id,this.name,this.type);
  Car.require(int id,String name):this(id,name,null);
}
میلاد عزیززاده ۲۷ شهریور ۱۴۰۰، ۱۹:۵۰