در زبان دارت، کلمهی required
به عنوان یک مدیفایر (modifier) برای پارامترهای تابع یا constructor استفاده میشود. با استفاده از این مدیفایر، شما میتوانید تضمین کنید که پارامترهای موردنیاز برای فراخوانی تابع یا constructor وارد شدهاند و در غیر این صورت، خطایی به شکل MissingRequiredParamterException
نمایش داده میشود.
به عنوان مثال، فرض کنید شما یک تابع به نام printName
دارید که یک پارامتر از نوع String
به نام name
دریافت میکند. برای اطمینان از این که پارامتر name
به درستی ارسال شده است، میتوانید از کلمهی required
برای آن استفاده کنید. به شکل زیر:
void printName({required String name}) {
print('Hello $name');
}
در کد بالا، پارامتر name
با استفاده از {}
به صورت نامگذاری شده تعریف شده است و با استفاده از کلمهی required
، تضمین شده است که این پارامتر برای فراخوانی تابع لازم است و در غیر این صورت، خطایی پرتاب میشود.
با استفاده از کلمهی required
، شما میتوانید از پارامترهای اضافی در تابعها و constructorها جلوگیری کنید و در عین حال، اطمینان حاصل کنید که پارامترهای موردنیاز برای فراخوانی تابع وارد شدهاند.
علاوه بر استفاده از کلمهی required
برای پارامترهای تابع و constructor، در زبان دارت میتوانید از آن برای فیلدهای یک کلاس نیز استفاده کنید. با استفاده از کلمهی required
برای فیلدهای یک کلاس، میتوانید تضمین کنید که این فیلدها همواره مقداری دارند و در غیر این صورت، خطایی پرتاب میشود.
به عنوان مثال، فرض کنید شما یک کلاس به نام Person
دارید که دارای دو فیلد firstName
و lastName
است. برای این که اطمینان حاصل کنید که هر دو فیلد همیشه مقداری دارند، میتوانید از کلمهی required
برای آنها استفاده کنید. به شکل زیر:
class Person {
final String firstName;
final String lastName;
Person({required this.firstName, required this.lastName});
}
در کد بالا، دو فیلد firstName
و lastName
با استفاده از کلمهی final
تعریف شدهاند و با استفاده از کلمهی required
، تضمین شده است که هر دو فیلد برای ساخت شیء از کلاس Person
لازم هستند و در غیر این صورت، خطایی پرتاب میشود.
با استفاده از کلمهی required
برای فیلدهای یک کلاس، شما میتوانید از ایجاد شیهای نامناسب جلوگیری کنید و اطمینان حاصل کنید که همهی فیلدهای موردنیاز برای ساخت یک شیء از کلاس وارد شدهاند.
همچنین، در زبان دارت میتوانید از کلمهی required
برای بازگشتیهای تابع نیز استفاده کنید. با استفاده از کلمهی required
برای بازگشتی یک تابع، میتوانید تضمین کنید که تابع به هر حالتی یک مقدار برمیگرداند و در غیر این صورت، خطایی پرتاب میشود.
به عنوان مثال، فرض کنید شما یک تابع به نام findPerson
دارید که یک لیست از اشخاص و یک نام به عنوان ورودی دریافت میکند و یک شیء از نوع Person
را با نام مشخص شده برمیگرداند. با استفاده از کلمهی required
برای بازگشتی این تابع، میتوانید تضمین کنید که تابع همواره یک شیء از نوع Person
برمیگرداند و در غیر این صورت، خطایی پرتاب میشود. به شکل زیر:
Person findPerson(List<Person> people, String name) {
for (var person in people) {
if (person.name == name) {
return person;
}
}
throw ArgumentError('Person not found');
}
در کد بالا، تابع findPerson
یک لیست از اشخاص و یک نام به عنوان ورودی دریافت میکند و به دنبال یافتن شخص با نام مشخص شده است. با استفاده از کلمهی required
برای بازگشتی این تابع، تضمین شده است که همواره یک شیء از نوع Person
برای خروجی تابع وجود دارد و در غیر این صورت، خطایی نمایش داده میشود.
با استفاده از کلمهی required
برای بازگشتی تابع، شما میتوانید از بازگشتیهای نامناسب جلوگیری کنید و اطمینان حاصل کنید که همواره یک مقدار به عنوان خروجی تابع برگشت داده میشود.