Typedef یکی از مهمترین ویژگیهای زبان دارت است که به شما این امکان را میدهد که یک نام جدید برای یک نوع دادهای تعریف کنید. این نام جدید میتواند برای ایجاد شیءهایی از نوع دادهای مورد نظر، استفاده شود. این ویژگی به شما این امکان را میدهد که کد خود را قابل فهمتر و خواناتر کنید.
برای استفاده از Typedef در دارت، شما میتوانید از کلمه کلیدی typedef
استفاده کنید. دستور typedef
یک نام جدید برای یک نوع دادهای موجود تعریف میکند. برای مثال، در زیر، یک typedef
برای نوع int
تعریف شده است:
typedef int MyInt;
در مثال بالا نام جدید MyInt
برای نوع int
تعریف شده است. حالا میتوانیم از MyInt
برای تعریف متغیرها و پارامترها استفاده کنیم. به عنوان مثال:
MyInt x = 10;
void foo(MyInt a) { ... }
در دارت شما میتوانید همهی نوعهای دادهای را با typedef
تعریف کنید، از جمله اعداد صحیح، اعداد اعشاری، رشتهها و آرایهها. به طور مشابه، میتوانید typedef
برای تعریف نوع دادهای ساختاری (Struct) نیز استفاده کنید.
برای مثال، در ادامه یک typedef
برای ساختار Person تعریف شده است:
typedef struct {
String name;
int age;
} Person;
حالا میتوانیم از نام جدید Person
برای تعریف متغیرها و پارامترها از نوع ساختار Person
استفاده کنیم. به عنوان مثال:
Person p = Person(name: "Erfan", age: 30);
void printPerson(Person p) { ... }
در اینجا، متغیر p
و پارامتر p
vh نیاز دارید که به دلایل مختلف از نوع دادهای قبلی به نام جدید دیگری استفاده کنید، میتوانید typedef
را به شکل زیر استفاده کنید:
typedef OldType NewType;
در مثال قبل نام جدید NewType
به نوع دادهای موجود OldType
تعریف میشود.
شما میتوانید typedef
را برای تعریف یک تابع نیز استفاده کنید. به طور معمول، نام یک تابع به عنوان یک اشارهگر به تابع استفاده میشود، اما با استفاده از typedef
میتوانید یک نام جدید برای این اشارهگر تعریف کنید. به طور مثال، در زیر، یک typedef
برای اشارهگر به تابع تعریف شده است:
typedef void FunctionType(int a, int b);
حالا میتوانیم از نام جدید FunctionType
برای تعریف اشارهگر به تابع استفاده کنیم. به عنوان مثال:
FunctionType myFunc = (int a, int b) { ... };
در مثال بالا متغیر myFunc
یک اشارهگر به یک تابع از نوع FunctionType
است.
بنابراین، typedef
یک ویژگی مفید در دارت است که به شما این امکان را میدهد که نام جدیدی برای نوع دادهای موجود تعریف کنید و از آن برای تعریف متغیرها و پارامترها استفاده کنید. همچنین، شما میتوانید typedef
را برای تعریف یک ساختار (Struct) یا یک اشارهگر به تابع نیز استفاده کنید.
به عنوان یک مثال دیگر، فرض کنید که شما میخواهید با استفاده از دادهساختار List
دارت، یک نوع دادهای جدید به نام NameList
تعریف کنید. NameList
شامل لیستی از رشتههایی است که نام چندین شخص را نگه میدارد.
ابتدا، باید داده ساختار List
را ایمپورت کنید:
import 'dart:core';
حالا میتوانید typedef
را برای تعریف نوع دادهای NameList
استفاده کنید:
typedef NameList = List<String>;
در مثال بالا نام جدید NameList
به List<String>
تعریف شده است. به این معنی که NameList
یک نوع دادهای جدید است که مشابه List<String>
است. این به معنی این است که شما میتوانید هر عملیاتی را که بر روی List<String>
قابل انجام است، روی NameList
نیز انجام دهید.
حالا، میتوانید از نوع دادهای NameList
برای تعریف متغیرها استفاده کنید. به عنوان مثال:
NameList names = ['ٍErfan', 'Reza', 'Sara'];
در مثال بالا names
یک متغیر از نوع دادهای NameList
است که سه نام را در خود ذخیره میکند.
بنابراین با استفاده از typedef
میتوانید نوع دادهای جدیدی را با استفاده از نوع دادهای موجود تعریف کنید و از آن برای تعریف متغیرها و پارامترها استفاده کنید. این کار به شما کمک میکند که کد خود را خواناتر و قابل فهمتر کنید.