و اینک کاتلین. صفر تا سی کاتلین در ۵ دقیقه

کاتلین یک زبان بر پایه jvm است . یعنی از همه کلاس های جاوا پشتیبانی میکند. اصلا به کد جاوا کامپایل میشود. میتونیم بگیم همون جاوا ست که شکلش فرق کرده. این تغییر شکل به افزایش خوانایی و بالا رفتن سرعت کار و ... منجر شده. به خاطر همین امکانات گوگل تصمیم گرفت که کاتلین رو به عنوان زبان رسمی اندروید معرفی کنه که خیلی در محبوبیت این زبان نقش داشته. کاتلین توسط شرکت jet brains که یکی از معروف ترین شرکت های ساخت IDE هست ساخته شده.IntelliJ و android studio از ساخته های معروف این شرکت است.حرف زدن بسه . توی این مقاله با متغیر ها و شرط ها و حلقه و نکات مقدماتیو چند تابع مهم اشنا میشیم و در قسمت بعد سراغ کلاس ها و متد ها میریم . شاید قسمت سومی هم باشه که ویژگی های کاتلین برای برنامه نویسان اندروید رو بررسی میکنیم.البته قرار نیست اینجا برنامه نویسی یاد بگیریم. فقط میخوایم به عنوان یک برنامه نویس جاوا شما رو با syntax کاتلین اشنا کنیم.××تصمیم گرفتم یه قسمت جدا برای انواع داده بنویسم پس اینجا اشاره جدی بهشون نمیشه.متغیر ها:متغیر ها برای ذخیره اطلاعات استفاده میشن. در کاتلین متغیر ها با دو کلید واژه var یا val مشخص میشوند. متغیر هایی که var تعریف شده اند بعدا قابل تغییر هستند و به عبارتی final نیستند. val بر عکس اونه یعنی قبل تغییر نیستند. و فقط یکبار میتوانند مقدار دهی شوند.متغیری که اسمش name باشه و مقدارش arman باشه اینطوری تعریف میشهvar name = "arman"شگفتی ها از اینجا شروع میشه.اول اینکه لزوما لازم نیست که نوع متغیر رو مشخص کنیم. نوع متغیر میتونه بر اساس مقداری که داره به صورت خودکار مشخص بشه. مثلا در اینجا string است. دوم اینکه نیازی نیست ";" اخر دستور هامون بزاریم.اگه بخواهیم نوع داده رو مشخص کنیم باید بعد است ااسم متغیر و بعد از ":" اینکارو کنیم:var name: Stringدقت کنید که در مثال بالا باید نوع متغیر را مشخص کنیم چون مقدار دهی نشده. به عبارتی همون موقع ایجاد متغیر باید نوعش مشخص بشه چه با مقداردهی چه صراحتا.متد main: در جاوا اجرا برنامه ها از متد main شروع میشه . در کاتلین هم همینطوره:با متد ها در قسمت بعد اشنا میشیم ولی فعلا بدونید که متد ها با کلید واژه fun تعریف میشن.نکته شگفت انگیز اینه که لازم نیست حتما کلاسی وجود داشته باشه. همین سه خط بالا یه برنامه کامله. نکته بعدی تابع println() است. به جای اینکه بنویسیم System.out.println کافیه از این متد استفاده کنیم. کامنت :نحوا کامنت گذاشن با جاو فرقی نمیکنه . کامنت های یک خطی با // ایجادمیشن. کامنت ها چند خطی با */ شروع و با /* تموم میشه.String.format در کاتلین:توی جاوا اگه میخواستیم توی یه رشته , مثلا یک متغیر جاسازی کنیم باید از String.format استفاده میکردیم.کاتلین کار رو خیلی ساده کرده . کافیه توی رشته از علامت$ استفاده کنیم و بعد از اون اسم متغیری که میخوایم جاسازی بشه رو بنویسیم.var a = 1var s = &quota is $a&quot //== &quota is 1&quotحتی میتونیم از {} (براکت فرفری :)) استفاده کنیم و حاصل یک عبارت را جاسازی کنیم.در مثال بالا از یکی از متد های مفید string استفاده کردیم: replace. هر جا پارامتر اول باشه رو با پارامتر دوم عوض میکنه. حاصل عبارت ("s1.replace("is", "was توی متن جاسازی میشه.عبارات شرطی:با if که اشنا هستید . در کاتلین هم مثل جاواست ولی تغییر مهمش اینه که میتونه به عنوان یک عبارت به کار بره. مثلا میتونه به عنوان مقدار برگشتی یک تابع ازa استفاده کنیم که تو قسمت بعد بیشتر در موردش حرف میزنیم. فعلا این مثال رو داشته باشید :کاتلین یک ویژگی خیلی مهم داره که میتونه برای همیشه مارو از شر nullpointerExeption راحت کنه. اونم اینه که هیچ شی ای نمیتونه null باشه مگر اینکه خودمون مشخص کنیم. بعد از اسم کلاس از علامت ? استفاده میکنیم تا به کاتلین بگیم این شی یا متغیر یا هرچیزی که ازش استفاده میکنه میتونه null باشه در غیر این صورت اخطار دریافت خواهیم کرد.val name: String? = null ___شکل درستval name: String = null // Syntax errorکلید واژه is مشخص میکنه که یه شی از جنس یک کلاس هست یا نه. اگر اون شی از جنس یک کلاس بود برای استفاده از امکانات کلاس نیازی به cast کردن نیست و به طور خودکار انجام میشه.حلقه ها:این حلقه مثل حلقه for each توی جاواست. به جای اینکه یه متغیر بسازیم و هر بار یکی بهش اضافه کنیم تا اعضا یک ارایه رو چاپ کنه از in استفاده میکنیم:حلقه while:مثل جاوا:عبارت when:یه جورایی مثل switch میمونه ولی قوی تر . به اینکه بنویسیم switch(number){ case 1: System.out.println(&quothello world&quot); break;}مینویسیم:when(number) { 1 -> println(&quothello world&quot)}بازه ها - raings:در کاتلین میتونیم خیلی راحت بازه ای از اعداد یا حروف را مشخص کنیم. مثلا 10..1 یعنی اعداد یک تا نه(یکی مونده به اخر ).با استفاده از تابع listOf هم میتونیم یک لیست از اشیا بسازیم.با استفاده از step هم میتونیم بازه ای از اعداد که چند تا چند جلو رفتن رو بسازیم.کلید واژه in:با استفاده از in میتونیم بفهمیم که ایا یه چیز توی ارایه یا در حالت کلی هر مجموعه ای از اشیا هست یا نه.ممنون که این کقاله رو خوندید . سعی کردم کامل باشه ولی اگه نکته ای جا مونده باشه حتما تو قسمت های بعدی بهش اشاره میکنیم.