کاتلین فارسی

فهرست

1 - مقدمه

1.1 ) به دوره خوش آمدید

1.2 ) چرا کاتلین؟

2 - مبانی کاتلین

2.1 ) آشنایی با JVM

2.2 ) نصب کردن ابزارآلات

2.3 ) کاتلین REPL

2.4 ) ساختار یک برنامه کاتلین

2.5 ) کاتلین با IntelliJ IDEA

2.6 ) خلاصه بخش دوم

3 - کد نویسی مقدماتی کاتلین

3.1 ) تعریف متغیر در کاتلین

3.2 ) کار با Type های پایه ای

3.3 ) حلقه ها در کاتلین

3.4 ) عبارت های شرطی در کاتلین

3.5 ) اضافه کردن پگیج ها در کاتلین و خلاصه بخض سوم

4 - توابع

4.1 ) توابع در کاتلین

4.2 ) تابع با پارامترهای پیشفرض و نامیده شده

4.3 ) تابع با پرامترهای نامحدود و خلاصه بخش چهارم

5 - کلاس ها

5.1 ) کلاس ها در کاتلین

5.2 ) توابعِ عضو در کاتلین

5.3 ) visibility modifier ها در کاتلین

5.4 ) کلاس های دیتا در کاتلین

5.5 ) کلاس های enum در کاتلین

5.6 ) Object ها در کاتلین و خلاصه بخش پنج

6 - ارث بری

6.1 ) ارث بری در کاتلین

6.2 ) کارکردن با کلاس های abstract در کاتلین

6.3 ) کلاس های interface در کاتلین

6.4 ) نگاه کوتاه به generic ها و خلاصه بخش شش

7 - کارکردن با Null ها

7.1 ) null safety و خلاصه بخش هفت

8 - نکات اضافه

8.1 ) type casting در کاتلین

8.2 ) چندتایی ها (Tuples)

8.3 ) deconstructing values

8.4 ) کار کردن با exception ها

8.5 ) constant ها

8.6 ) annotation ها در کاتلین و خلاصه بخش هشت

9 - نگاه functionalای

9.1 ) توابع Higher-Order

9.2 ) عبارت های لاندا در کاتلین

9.3 ) closure ها در کاتلین

9.4 ) عبارت های الحاقی در کاتلین و خلاصه بخش نهم

10 - قابلیت همکاری و Interoperability

10.1 ) همکاری با جاوا

10.2 ) صحبت کردن با جاوا از کاتلین

10.3 ) کار کردن با null ها از جاوا

10.4 ) صحبت کردن با کاتلین از جاوا

10.5 ) توابع و خصیصه های درجه اول

10.6 ) توابع الحاقی کاتلین از جاوا

10.7 ) همکاری با جاوا 7 و 8 و خلاصه بخش دهم

11 - کتابخانه استاندارد

11.1 ) کتابخانه استاندارد کاتلین و کارکردن با کالکشن ها در کاتلین

11.2 ) مرور کوتاه بر روی filtering و mapping و flatmapping در کاتلین

Object ها در کاتلین و خلاصه بخش پنج

ویرایش

نمیدونم که آیا تفاوت کلاس و Object رو میدونید یا نه؟ واسه همین یه توضیح کوچولو میدم.

واضح ترین تفاوت میان این دو اینه که کلاس به مانند یک نقشه برای طراحی ساختمون میمونه، یعنی در واقع شما با ساختن یک کلاس یک، نمونه میسازین که اشیاء ارث بری شده ازشون میتونن کار های دلخواهتون رو انجام بدن. ولی به عنوان مثال در JavaScript کلاس تعریف نشدس و به جای اون Object هایی ساخته میشن که میتونن 2 کار رو انجام بدن، یا به صورت یک نمونه برای Object های دیگه عمل کنن و یا خودشون همون اعمال رو انجام بدن.

در کاتلین شما هم تعریفی به نام Object داری و هم تعریفی به نام Class و خب در نتیجه مواقعی که لازمه میتونید از Object استفاده کنید مخصوصا مواقعی که میخواین Functional کد بنویسین.

خب حالا بیاین ببینیم چجوری:

object Global{
    val PI = 3.14
}

fun main(args: Array<String>) {
    println(Global.PI)
}

به همین سادگی که میبینین. من حتی میتونم همین object رو به صورت یک عبارت بیان کنم.

object Global{
    val PI = 3.14
}

fun main(args: Array<String>) {
    val localObject = object {
        val PI = 3.14159
    }
    
    println(localObject.PI)
    println(Global.PI)
}

تفاوتی که این دو دارن اینه که عبارت ها سریعا ساخته میشن! خب البته درمورد استفاده های Object بعدا بیشتر صحبت میکنیم.

خلاصه بخش 5:

1- کلاس ها به مانند شهروند رتبه اول در کاتلین به حساب میان( به مانند Top-level-functions)

2- میتونن خصیصه و توابع داخل خودشون داشته باشن

3- توی کاتلین چیزی به نام feild وجود نداره( البته منظورمون متغییر های feild هستش و نه اون که توی بخش کلاس های دیتا دیدیم)

4- با کلاس های دیتا اشنا شدیم

5- با enum ها اشنا شدیم

6- Object ها یک روش خیلی ساده برای ساختن singleton ها هستند