unnamed constructor

پرسیده شده
فعالیت 949 روز پیش
دیده شده 448 بار
0

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

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

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

فایل پیوست

mahdi kaliani
mahdi kaliani

27 شهریور 00

0
حذف شده

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

فایل پیوست

Majed Al Mohandis

توسط

Majed Al Mohandis

27 شهریور 00

حذف شده
سلام وقت بخیر تا حدودی میشه این کار رو کرد منتها وقتی تعداد property ها زیاد میشه فک نکنم بشه از این روش استفاده کرد
mahdi kaliani

28 شهریور 00

0
حذف شده

سلام وقت بخیر

امکان نوشتن چند 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);
}
فایل پیوست

میلاد عزیززاده گلنگشی

توسط

میلاد عزیززاده گلنگشی

27 شهریور 00

حذف شده
سلام وقت بخیر مشکل همین null able نبودن هست
mahdi kaliani

28 شهریور 00

حذف شده
Nullable نبودن مشکل نیست یک مزیته
حذف شده
البته خوب قبول دارم عادت کردن باهاش یکم زمان بره :)