رونمایی از پخته‌ترین و کاربردی‌ترین محصولات آموزشی سون‌لرن با کلی آفرهای ویژه🔥
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ کیارش یعقوبی
مفهوم کانستراکتور ریدایرکت شده
جامعه فلاتر ایجاد شده در ۲۷ مهر ۱۴۰۲

سلام خسته نباشید
دقیقه ی اخر این جلسه رو من متوجه نشدم
برای ریدایرکت کردن کلاس داخل پرانتز باز و بسته ی بعد نام کانستراکتور ریدایرکت شده چیزی باید نوشت؟اگه بله کی باید چیزی نوشت و اصلا چرا باید نوشت، لطفا نمونه بیارین که بفهمم
سوال دوم هم اینکه اصلا کاربرد این ریدایرکت کردن کانستراکتور چیه

سلام شما هم خسته نباشید

مفهوم ریدایرکت رو درک کنید کافیه؛ اینکه کی چیزی بنویسید یا ننویسید به کاری که میخواید انجام بدید بستگی داره؛ فرمول ثابتی نداره.. ممکنه برخی فیلد‌ها رو بذارید برخی نه یا ... .

زمانی استفاده میشه که شما از طریق یک کانستراکتور بخواید یک کانستراکتور دیگه رو صدا بزنید و ازش استفاده کنید. لزوما هم همیشه در کد لازم نمیشه که پیاده سازی کنید. مثلا در کد پایین، سازنده دوم ریدایرکت شده به سازنده اول چون در این سناریو مقدار hasABS رو برای اشیایی که با Car.withoutABS ساخته میشن رو نمیخواسته از کاربر استفاده کننده از این کلاس دریافت کنه و مقدار مشخصی داره.

class Car {
	String make;
   	String model;
   	String yearMade;
   	bool hasABS;
   	Car(this.make, this.model, this.yearMade, this.hasABS);
   	Car.withoutABS(this.make, this.model, this.yearMade): this(make, model, yearMade, false);
}

 

یا مثلا کد زیر دقیقا که مربوط به کلاس BorderRadius در فلاتر هست کاربرد دیگه ای از این موضوع هست

  BorderRadius.circular(double radius) : this.all(
    Radius.circular(radius),
  );
  const BorderRadius.vertical({
    Radius top = Radius.zero,
    Radius bottom = Radius.zero,
  }) : this.only(
    topLeft: top,
    topRight: top,
    bottomLeft: bottom,
    bottomRight: bottom,
  );

 

یلدا محصلی ۲۸ مهر ۱۴۰۲، ۲۱:۳۵