English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

الاسماء المختصرة Swift (Typealias)

في هذا المقال، ستعلم Alias في Swift وأمثلة على استخدامه.

يُمكن للـ Alias أن يسمح لك بتسمية النوع الموجود في برنامجكنوع البياناتتقدم اسمًا جديدًا. بعد إعلان Alias، يمكنك استخدام الاسم المُكتشف في جميع أنحاء البرنامج بدلاً من النوع الموجود.

Alias لن يصنع نوعًا جديدًا. إنه فقط يقدم اسمًا جديدًا لنوع موجود.

الغرض الرئيسي لـ Alias هو جعل كودنا أكثر وضوحًا وفي سياق أكثر وضوحًا لفهم الإنسان.

كيفية إنشاء Alias؟

بتسجيل Alias باستخدام كلمة المفتاح:

typealias name = existing type

في Swift، معظم الأنواع يمكن استخدامها مع Alias. يمكن أن تكون:

  • نوع مدمج(على سبيل المثال: String،Int)

  • نوع مُحدد من قبل المستخدم(على سبيل المثال: class،structure،enum)

  • نوع معقد(على سبيل المثال: closuer)

Alias لنوع مدمج

يمكنك استخدام Alias في جميع أنواع البيانات المدمجة، مثل String،Int،Float،ect.

على سبيل المثال:

typealias StudentName = String

تسمح هذه الإعلاناتاسم الطالببديلاً عن String في كل مكان. لذا، إذا كنت ترغب في إنشاء كمية ثابتة من نوع String ولكنها تبدو مثل اسم طالب، يمكنك القيام بذلك:

let name:StudentName = "Jack"

بدون استخدام Alias، يجب أن يتم إعلان الكمية الثابتة من نوع String كما يلي:

let name:String = "Jack"

في هذين المثالين، أنشأنا كمية ثابتة من نوع String. ولكن باستخدام Alias في الإعلان، يصبح كودنا أكثر وضوحًا.

Alias مُحدد من قبل المستخدم لنوع

في العديد من الحالات، تحتاج إلى إنشاء نوع بيانات خاص بك. لنفترض أنك تريد إنشاء نوع يُمثل Student، يمكنك استخدام الكائن التالي لإنشاء هذا النوع:

class Student {
{}

الآن، مجموعة من الطلاب يمكن أن تمثلها قائمة:

var students:Array<Student> = []

من خلال استخدام Alias لتكوين نوع Array<Student> خاص بك، يمكنك جعل الإعلان السابق أكثر وضوحًا:

typealias Students = Array<Student>

الآن، يمكننا جعل الكود أكثر وضوحًا:

var students:Students = []

نوع المعقد Alias

دعونا نحلل مثالاً آخر. لنفترض أن لدينا طريقة تأخذ القائمة كمعامل إدخال.

إذا لم تكن تعرف القوائم، لا تقلق. يمكنك رؤيتها كنوع خاص من الوظائف.

func someMethod(oncomp:(Int)->(String)){
{}

النموذج المذكور أعلاه يستخدم القوائم كمدخل لوظيفة someMethod. القائمة تأخذ قيمة Int وتعيد String.

يمكنك رؤية أن استخدام (Int)->(String) ليس له معنى للبرمجين. يمكنك استخدام typealias لتقديم اسم جديد له:

typealias CompletionHandler = (Int)->(String)

الآن، يمكنك كتابة الطريقة كالتالي:

func someMethod(oncomp:CompletionHandler){
{}

نحن نرى أن استخدام typealias يجعل الكود أكثر وضوحًا ويكون أكثر لطفًا للمبرمجين.