فهرست
1 - مقدمه
2 - مبانی کاتلین
3 - کد نویسی مقدماتی کاتلین
5.3 اضافه کردن پکیج ها در کاتلین و خلاصه بخش سوم
4 - توابع
2.4 تابع با پارامترهای پیشفرض و نامیده شده
3.4 تابع با پرامترهای نامحدود و خلاصه بخش چهارم
5 - کلاس ها
3.5 visibility modifier ها در کاتلین
6.5 Object ها در کاتلین و خلاصه بخش پنج
6 - ارث بری
2.6 کارکردن با کلاس های abstract در کاتلین
3.6 کلاس های interface در کاتلین
4.6 نگاه کوتاه به generic ها و خلاصه بخش شش
7 - کارکردن با Null ها
1.7 null safety و خلاصه بخش هفت
8 - نکات اضافه
7.8 annotation ها در کاتلین و خلاصه بخش هشت
9 - نگاه functionalای
4.9 عبارت های الحاقی در کاتلین و خلاصه بخش نهم
10 - قابلیت همکاری و Interoperability
2.10 صحبت کردن با جاوا از کاتلین
3.10 کار کردن با null ها از جاوا
4.10 صحبت کردن با کاتلین از جاوا
5.10 توابع و خصیصه های درجه اول
6.10 توابع الحاقی کاتلین از جاوا
7.10 همکاری با جاوا 7 و 8 و خلاصه بخش دهم
11 - کتابخانه استاندارد
1.11 کتابخانه استاندارد کاتلین و کارکردن با کالکشن ها در کاتلین
2.11 مرور کوتاه بر روی filtering و mapping و flatmapping در کاتلین
typealias در کاتلین
خب به قسمتی رسیدیم که دقیقا به بخش خاصی تعلق ندارن ولی یکی از ابزاری که میتونه خیلی کمکمون کنه. typealias ها به ما این امکان رو میدن که بتونیم یک اسم جایگزین برای کلاس هایی که میخوایم استفاده کنیم بزاریم.
مثلا میتونیم اسم یکی از کلاس هامون رو کوتاه کنیم و از این به بعد از اون اسم جایگزین استفاده کنیم مثلا فرض کنید که کلاسی به این اسم داریم:
MutableMap<String , MutableList<File>>
و خیلی قراره از این کلاس جاهای مختلفی استفاده کنیم که یقینا برای اینکه هربار این کلاس رو فراخونی کنیم و ازش نمونه بسازیم یه مقدار کلافه کننده ست، خوب اینجاست که این ابزار در کاتلین به کمکمون میاد و به ما این امکان رو میده که یک اسم جایگزین برای همچین کلاسی بنویسیم و از این به بعد از این نام کوتاه جای این نام طولانی کلاس استفاده کنیم.
typealias FileTable = MutableMap<String, MutableList<File>>
حتی میشه از اونا برای اسم جایگزین توی inner class ها استفاده کرد:
class Food {
inner class Pizza{
//Codes...
}
}
typealias PizzaInnerFood = Food.Pizza
نکته ای که باید بهش دقت کنید اینه که typealias ها یک کلاس یا تایپ جدیدی رو ارائه نمیدن بلکه فقط یه اسم جایگزین رو برای یک کلاس ارائه میدن.
typealias ArrName = ArrayList<String>;
MainActivity : AppCompatActivity(){
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val names = ArrName()
names.add("Ali")
names.add("Kamran")
names.add("Sara")
}
}