داستان این زبان برنامه نویسی از آنجایی شروع می شود که شرکت اپل برای برنامه نویسی سیستم های iOS زبان برنامه نویسی swift را ارائه کرد. به دنبال این کار برنامه نویسان اندروید نیز خواستار زبان مشابه swift برای اندروید شدند. زبان kotlin با استفاده از ماشین مجازی JVM اجرا می شود و شباهت های زیادی به زبان swift دارد. همچنین زبان kotlin یک زبان نوع استاتیک است که توسط شرکت jetbrains ارائه شده است. شرکت jetbrains شرکتی است که محصولاتی مانند resharper, Intellij idea, phpStorm , web storm را برای راحتی و کار سریع برنامه نویسان ارائه کرده است. حتی برنامه اندروید استودیو هم بر پایه محصول intellij idea این شرکت ساخته شده است. 

(گروه شتاب دهنده رادیب)


مشخصات زبان kotlin


سینتکس زبان kotlin قابل درک تر از سینتکس زبان جاوا است و مختصر تر از زبان جاوا است. از قابلیت های دیگر این زبان lambda expression و بارگذاری عملگر ها (operator overloading) و توابعی که با توابع کار می کنند (higher-order functions) می باشد. این توابع توابعی هستند که یا ورودی آنها تابع است یا خروجی آنها یک تابع است. زبان kotlin می تواند با زبان جاوا همکاری و تعامل داشته باشد بنابراین می توان در یک پروژه از هردوی این زبان ها باهم استفاده کرد. اگر شما یک برنامه نویس جاوا باشید می توانید زبان kotlin را در مدت زمان خیلی کوتاهی یاد بگیرید. در ادامه به خصوصیات این زبان برنامه نویسی به شکل فنی خواهیم پرداخت. دقت داشته باشید که برای این که این مطلب را درک کنید لازم است که با سینتکس زبان جاوا آشنایی نصبی داشته باشید.

کلاس ها در زبان kotlin

برای ساخت کلاس در کتلین شما باید از کلمه کلیدی class استفاده کنید. برای مثال اگر شما قصد دارید که یک کلاس خالی با نام Person بسازید باید مانند کد زیر عمل کنید. 

(گروه شتاب دهنده رادیب)



Class Person{
}


افزودن خصوصیاتی مانند فیلد ها در زبان kotlin


در برنامه نویسی شی گرا معمولا یک کلاس دارای فیلد ها و متدها می باشد. حال اگر بخواهیم به کلاس Person که ساختیم دو فیلد اضافه کنیم باید به شکل زیر عمل کنیم. در کد زیر دو فیلد تعریف شده است که یکی name است که از نوع رشته ای و دیگری age است که از نوع عدد صحیح است. 


var name: String = ""
var age: Int = 0
 

 

همانطور که می بینید نحوه تعریف فیلد و متغیر با جاوا فرق دارد. در زبان kotlin برای تعریف متغیر شما باید از کلمه کلیدی var استفاده کنید. در حالی که در جاوا اینگونه نیست. همچنین اگر شما بخواهید در کتلین یک متغیر read only یا فقط خواندنی داشته باشید باید از کلمه کلیدی val به جای var استفاده کنید. همچنین برای فیلد هایی که می توانند null باشند یا نباشند نیز کتلین راه حل هایی در نظر گرفته است و این دو نوع متغیر را از هم جدا کرده است یعنی متغیر هایی که می توانند مقدار null بگیرند و متغیرهایی که هیچ وقت نمی توانند null باشند و اگر null شوند کامپایلر خطا خواهد داد. متغیرهای age و name که تعریف کردیم از این نوع است و نمی توانند null باشند. برای این که متغیری بتواند مقدار null هم بگیرد باید هنگام تعریف آن از علامت سوال بعد از نوع متغیر استفاده کرد (این روش در زبان سی شارپ هم وجود دارد.) مانند مثال زیر  

var college: String? = null


برای این که یک شئ از یک کلاس ساخته شود در کتلین نیاز به استفاده از کلمه کلیدی new نیست و اصلا کتلین این کلمه کلیدی را ندارد. برای ساخت یک شئ از یک کلاس باید مانند کد زیر عمل کنید. (گروه شتاب دهنده رادیب)


var jake = Person()



وقتی که یک شئ از یک کلاس ساخته شد مانند زبان جاوا می توان از فیلد های آن استفاده کرد و آنها را مقدار دهی نمود و یا مقادیر آنها را خواند مانند کد زیر: 

jake.name = "Jake Hill"
jake.age = 24
jake.college = "Stephen's College"
 

استفاده از سازنده ها (constructor) در کتلین


همانگونه که می دانید در برنامه نویسی شی گرا از constructorها بسیار استفاده می شود. دلیل آن هم این است که برای مقداردهی اولیه به فیلد های یک کلاس از طریق constructor ها انجام می شود. زیرا که هنگام تعریف متغیر معمولا مقدار متغیر را مشخص نمی کنیم و مقادیر اولیه را از کاربر می گیریم. سینتکس کتلین برای ساخت constructor ها به شکل زیر است: 


class Person(var name: String, var age: Int, var college: String?) {
 
}
 

class Person(var name: String, var age: Int, var college: String?) {
     
    var email: String = ""
 
    constructor(name:String, age:Int, college: String?, email: String) : this(name, age, college) {
        this.email = email
    }
}
 
حال اگر بخواهیم یک شی از کلاس بسازیم باید کد آن را به شکل زیر بنویسیم. 

var jake = Person("Jake Hill", 24, "Stephen's College", "jake.hill@example.com")

متدهای کلاس(توابع عضو کلاس) در زبان kotlin


در کتلین برای این که یک تابع یا متد را تعریف کنیم باید از کلمه کلیدی fun استفاده کنیم. برای این که یک متد ساده تعریف کنیم به شکل زیر کد می نویسیم. در کد زیر یک متد به نام isChild تعریف کرده ایم که خروجی آن یک مقدار Boolean می باشد. 

(گروه شتاب دهنده رادیب)



fun isChild (): Boolean {
    return age < 18
}
 در متد بالا اگر سن زیر 18 سال باشد خروجی true و در غیر این صورت مقدار false برمی گرداند. برای فراخوانی این متد به همان روش جاوا باید عمل کنیم. مانند شکل زیر کد می نویسیم. 

jake.isChild()

تا به این قسمت به توضیح مفاهیم و سینتکس های زبان برنامه نویسی کتلین اشاره کردیم و گفتیم که تفاوت این زبان با جاوا در چه قسمت هایی است. البته هنوز کامل نیست و توضیحات بیشتری در مورد باقی مباحث کتلین خواهیم داد. در ادامه این مطالب همراه ما باشید که این مطالب ادامه دارند. 



Hjalp dette svar dig? 7 Kunder som kunne bruge dette svar (8 Stem)