برنامه نویسی و IT

چگونه کاتلین را آسان‌تر بیاموزیم

زبان برنامه نویسی کاتلین را چگونه بیاموزیم

توسعه اپلیکیشن‌های موبایلی در دنیای امروز به یک موقعیت شغلی پردرآمد و یک تخصص مهم تبدیل شده است. برای برنامه‌نویسی موبایل ابزارهای زیادی وجود دارد. گوگل اخیرا کاتلین را به‌صورت اختصاصی برای توسعه برنامه‌های اندروید به بازار معرفی کرده است. کاتلین به صورت افزونه‌ای در IDE های جاوا قابل نصب بوده و کار شما را در برنامه‌نویسی موبایل ساده‌تر می‌کند. سادگی و سرعت بالای کاتلین باعث خاص بودن این زبان می‌شود. در این مقاله قصد داریم بررسی کنیم زبان برنامه نویسی کاتلین چیست، چگونه نصب و راه‌اندازی می‌شود و مبانی کدزنی در آن را یاد بگیریم.

زبان برنامه نویسی کاتلین چیست

کاتلین یک زبان برنامه‌نویسی مدرن است که گوگل از آن تحت عنوان «زبان برنامه‌نویسی رسمی اندروید» یاد می‌کند. این زبان برنامه‌نویسی متن‌باز توسط شرکت JetBrains طراحی شده است؛ شرکتی که سابقه طراحی هوشمندترین IDE جاوا، یعنی Intelij IDEA را دارد. کدهای زبان برنامه نویسی کاتلین روی ماشین مجازی جاوا اجرا می‌شوند. ویژگی اصلی کاتلین در ترکیب شی‌گرایی با اجزای کاربردی (Functional) است. پیشنهاد می‌شود کسانی به سراغ این زبان بروند که آشنایی کافی با جاوا دارند. اما حتی برای اولین تجربه برنامه‌نویسی هم، کاتلین به‌دلیل سادگی و روان بودن، گزینه خوبی به‌حساب می‌آید. زبان برنامه‌نویسی کاتلین از زبان‌های دیگری همچون جاوا، اسکلا، Groovy، Gosu و … تاثیر پذیرفته است. Syntax این زبان دقیقا منطبق بر جاوا نیست، اما از لحاظ درونی کاتلین وابستگی زیادی به کتابخانه کلاس در جاوا دارد.

 

 

زبان برنامه نویسی کاتلین چه مزایا و معایبی دارد؟

مانند تمام زبان‌های برنامه‌نویسی دیگر، کاتلین هم ویژگی‌های مثبت و منفی مخصوص به خود را دارد. مزایای کاتلینعبارتند از:

  • سادگی: کاتلین را می‌توان به‌سادگی، حتی به‌عنوان یک برنامه‌نویس تازه‌کار یاد گرفت. این زبان شباهت‌های ظاهری و درونی بسیاری به جاوا دارد، برای همین یادگیری آن برای برنامه‌نویسان جاوا خیلی ساده‌تر خواهد بود. سطح بالای انتزاعی بودن این زبان باعث می‌شود کد شما برای کسی که آن را می‌خواند ساده‌فهم‌تر شود.
  • اختصار: این زبان از ماشین مجازی جاوا استفاده می‌کند، برای همین نیاز به اشغال فضای اضافه برای کامپایلر خود ندارد.
  • سرعت بالا: کاتلین در اجرای کد یکی از سریع‌ترین زبان‌های حال حاضر دنیا است.
  • تعاملی: کاتلین بلوغ لازم برای نوشتن برنامه‌های تعاملی را دارد.
  • تر و تازه بودن: این زبان را می‌توان به‌عنوان نسخه به‌روز شده‌ای از جاوا در نظر گرفت.

و معایب کاتلین عبارتند از:

  • مشکل اعلام Namespace: کاتلین به شما اجازه می‌دهد در سطح بالای سیستمی تابع تعریف کنید؛ اما زمانی که همان تابع را در جاهای دیگر برنامه تعریف کنید، تشخیص اینکه کدام تابع در حال صدا زده شدن است سخت خواهد شد.
  • نبود اعلام ایستا: کاتلین مثل جاوا ویرایشگر ایستا ندارد. این مورد خصوصا برای کسانی که از جاوا به این زبان کوچ می‌کنند می‌تواند باعث ایجاد مشکل شود.

معماری کاتلین به چه صورت است؟

ویژگی های کاتلین

کاتلین معماری مخصوص خود را در تخصیص حافظه و ارائه خروجی به برنامه‌نویس دارد. کامپایلر کاتلین یک بایت‌کد تولید می‌کند که این بایت‌کد روی ماشین مجازی جاوا اجرا می‌شود. بایت‌کد تولید شده توسط کاتلین هیچ تفاوتی با بایت‌کد تولید شده توسط جاوا نداشته و به‌همان شکل توسط فایل class. جاوا ساخته می‌شود. زمانی که دو بایت‌کد به‌صورت همزمان روی ماشین مجازی جاوا اجرا می‌شوند، با یکدیگر ارتباط گرفته و اصطلاحا همکاری می‌کنند. این ویژگی در کاتلین interoperable feature نام دارد.

چگونه زبان برنامه نویسی کاتلین را نصب و راه‌اندازی کنیم؟

در این بخش نصب و راه‌اندازی کاتلین را به‌صورت گام‌به‌گام توضیح می‌دهیم.

قدم اول: نصب جاوا ۸

همانطور که گفتیم کدهای کاتلین روی ماشین مجازی جاوا اجرا می‌شوند. به‌همین‌دلیل، نصب JDK برای کار با کاتلین ضروری خواهد بود. برای دانلود JDK می‌توانید از این لینک (https: // soft98.ir/software/692-sun-java-se-runtime-environment.html) استفاده کنید. نسخه JDK برای کار با کاتلین باید ۸ یا بالاتر باشد.

قدم دوم: نصب IDE

Integrated Development Enviroment یا IDE اشاره به محیطی دارد که کدزنی در آن انجام می‌شود. در حال حاضر IDE های مختلفی برای جاوا و زبان‌های برپایه جاوا وجود دارند. پرکاربردترین IDEها عبارنتد از: NetBeans، Eclipse و Intellij. قدیمی بودن ورژن IDE مشکلی برای شما ایجاد نمی‌کند، اما توصیه می‌شود جدیدترین ورژن را دانلود کنید.

قدم سوم: اضافه کردن کاتلین به IDE

کاتلین محیط توسعه مخصوص به خود را ندارد و از IDE های جاوا استفاده می‌کند. این IDE ها مثل Eclipse به‌طورپیش‌فرض امکان کدزنی کاتلین را ندارند. برای کار با کاتلین لازم است آن را به‌شکل افزونه‌ای به IDE خود اضافه کنید. برای این کار کافی است به بخش افزونه‌ها یا Marketplace مراجعه کرده و Kotlin را سرچ کنید. این افزونه به‌صورت رایگان در دسترس عموم قرار دارد. بعد از دانلود و نصب این افزونه لازم است برنامه را بسته و سپس باز کنید.

 

 

قدم چهارم: ایجاد اولین پروژه کاتلین

حالا کافی است در قسمت File نشانگر را روی New برده و Others را انتخاب کنید. در ادامه پنجره New در برابر شما باز می‌شود و می‌توانید از لیست ظاهر شده، با کلیک روی Kotlin Project اولین پروژه کاتلین خود را ایجاد نمایید. حالا به محیط اصلی IDE منتقل خواهید شد و در نوار سمت چپ پوشه Src قابل مشاهده است. روی این پوشه راست کلیک کنید تا گزینه‌ها ظاهر شوند و سپس New را انتخاب کنید. در لیستی که به نمایش درمی‌آید، Kotlin File را انتخاب کنید تا پروژه شما آماده کدزنی شود. در نهایت نوار سمت چپ به این شکل در خواهد آمد.

قدم پنجم: سلام به دنیای کاتلین!

معمولا اولین مثال برای هر زبانی برنامه معروف Hello World است. می‌توانید اولین کد خود را برای نمایش این پیام در کاتلین به شکل زیر بنویسید.

fun main(args: Array<String>) {
   println("Hello, World!")
}

با اجرای این برنامه در خروجی Hello World چاپ خواهد شد.

آموزش زبان برنامه نویسی کاتلین

مبانی زبان برنامه نویسی کاتلین

کاتلین هم مثل تمام زبان‌های دیگر، انواع داده و دستورالعمل‌های خاص خود را دارد. در این بخش سعی داریم شما را با مبانی زبان برنامه‌نویسی کاتلین آشنا کنیم.

داده در زبان برنامه نویسی کاتلین جه انواعی دارد؟

انواع داده یکی از اولین مباحثی است که در توضیح یا آموزش هر زبانی مورد بررسی قرار می‌گیرد. داده‌ها در کاتلین به دسته‌های مختلفی مثل اعداد، کاراکترها، بولین، رشته و… تقسیم می‌شوند. در ادامه نوع داده‌ها را به تفکیک همین دسته‌ها بررسی می‌کنیم.

  • اعداد

تعریف متغیرهای عددی در کاتلین تا حدود زیادی مشابه جاوا است. با این تفاوت که در کاتلین، تبدیل داخلی انواع داده به یکدیگر ممکن نیست. در جدل زیر انواع داده عددی همراه با طول هر کدام را مشاهده می‌کنید:

نوع اندازه
Double ۶۴
Float ۳۲
Long ۶۴
Int ۳۲
Short ۱۶
Byte ۸

با مثال زیر کامل متوجه می‌شوید که هر کدام از انواع داده عددی در کاتلین به چه شکل نمایش داده می‌شود.

fun main(args: Array<String>) {
   val a: Int = 10000
   val d: Double = 100.00
   val f: Float = 100.00f
   val l: Long = 1000000004
   val s: Short = 10
   val b: Byte = 1
   
   println("Your Int Value is "+a);
   println("Your Double  Value is "+d);
   println("Your Float Value is "+f);
   println("Your Long Value is "+l);
   println("Your Short Value is "+s);
   println("Your Byte Value is "+b);
}

در خروجی این کد خواهیم داشت:

Your Int Value is 10000
Your Double  Value is 100.0
Your Float Value is 100.0
Your Long Value is 1000000004
Your Short Value is 10
Your Byte Value is 1

کاراکترها

کاراکترها در کاتلین مشابه جاوا با char تعریف می‌شوند. برای وارد کردن یک کاراکتر مثل p در کاتلین با استفاده از نقل‌قول تکی و به شکل ‘p’ تعریف می‌شود. به مثال زیر توجه کنید:

fun main(args: Array<String>) {
   val letter: Char    // defining a variable 
   letter = 'A'        // Assigning a value to it 
   println("$letter")
}

توجه داشته باشید که val در خط اول برای تعریف متغیر آمده است. در کل برای تعریف متغیر در کاتلین از val یا var استفاده می‌شود. در خروجی کد بالا حرف A چاپ خواهد شد.

بولین

تعریف بولین در تمام زبان‌های برنامه‌نویسی بسیار ساده است. این نوع داده شبیه صفر و یک عمل کرده و True یا False را برمی‌گرداند. برای تعریف بولین در کاتلین از روش زیر استفاده می‌کنیم:

fun main(args: Array<String>) {
   val letter: Boolean   // defining a variable 
   letter = true         // Assinging a value to it 
   println("Your character value is "+"$letter")
}

و در خروجی خواهیم دید:

Your character value is true

رشته‌ها

یک رشته در واقع یک آرایه از کاراکتر ها است. درست مثل جاوا، در کاتلین هم رشته‌ها تغییرناپذیر‌اند. رشته در کاتلین دو نوع دارد: raw String و escaped String که با یک مثال تفاوت آن‌ها را به شما نشان خواهیم داد:

fun main(args: Array<String>) {
   var rawString :String  = "I am Raw String!"
   val escapedString : String  = "I am escaped String!\n"
   
   println("Hello!"+escapedString)
   println("Hey!!"+rawString)   
}

در خروجی می‌بینیم:

Hello!I am escaped String!

Hey!!I am Raw String!

آرایه‌ها در زبان برنامه نویسی کاتلین

آرایه معمولا مجموعه ‌ای از داده‌های همگن است. کاتلین هم مثل جاوا از آرایه‌هایی که انواع داده را در خود دارند پشتیبانی می‌کند. در این مثال تعریف یک آرایه عددی را مشاهده می‌کنید:

fun main(args: Array<String>) {
   val numbers: IntArray = intArrayOf(1, 2, 3, 4, 5)
   println("Hey!! I am array Example"+numbers[2])
}

در خروجی پس از پیام، داده‌ی موجود در خانه شماره ۲ آرایه (یعنی ۳) نمایش داده می‌شود. باید توجه داشته باشید که شمارش خانه‌های آرایه از صفر شروع می‌شود نه از یک.

مجموعه‌ها

مجموعه بخش بسیار مهمی از ساختار داده است که برنامه‌نویسی را خیلی راحت‌تر می‌کند. در کاتلین دو نوع مجموعه وجود دارد: مجموعه تغییرناپذیر و مجموعه تغییرپذیر. مجموعه تغییرناپذیر شامل لیست‌ها یا نقشه‌هایی است که امکان ویرایش ندارند. مفهوم مجموعه در کاتلین با مثال زیر برای شما روشن‌تر خواهد شد.

fun main(args: Array<String>) { 
   val numbers: MutableList<Int> = mutableListOf(1, 2, 3) //mutable List 
   val readOnlyView: List<Int> = numbers                  // immutable list 
   println("my mutable list--"+numbers)        // prints "[1, 2, 3]" 
   numbers.add(4) 
   println("my mutable list after addition --"+numbers)        // prints "[1, 2, 3, 4]" 
   println(readOnlyView)     
   readOnlyView.clear()    // ⇒ does not compile  
// gives error  
}

چون که در این کد برای یک لیست تغییرناپذیر دستور پاک شدن نوشته‌ایم، در خروجی خطا مشاهده خواهیم کرد.

main.kt:9:18: error: unresolved reference: clear
   readOnlyView.clear()    // -> does not compile  
                 ^

کاتلین همچنین یک سری متد کاربردی برای مجموعه‌ها ارائه می‌دهد که در مثال زیر کاربرد آن‌ها را می‌بینید:

fun main(args: Array<String>) {
   val items = listOf(1, 2, 3, 4)
   println("First Element of our list----"+items.first())
   println("Last Element of our list----"+items.last())
   println("Even Numbers of our List----"+items.
      filter { it % 2 = = 0 })   // returns [2, 4]
   
   val readWriteMap = hashMapOf("foo" to 1, "bar" to 2)
   println(readWriteMap["foo"])  // prints "1"
   
   val strings = hashSetOf("a", "b", "c", "c")
   println("My Set Values are"+strings)
}

در خروجی خواهیم دید:

First Element of our list----1
Last Element of our list----4
Even Numbers of our List----[2, 4]
۱
My Set Values are[a, b, c]

دستورالعمل‌‎های کنترلی در کاتلین چه انواعی دارند؟

دستورالعمل‌های کاتلین تفاوت چندانی با ++C و جاوا ندارند. انواع دستورالعمل در کاتلین عبارت است از:

If-Else

اگر-آن‌گاه یا دستورالعمل شرطی تقریبا در تمام زبان‌های برنامه‌نویسی به همین سبک وجود دارد. در ادامه مثالی ساده از کاربرد این دستورالعمل مشاهده می‌کنید. در این مثال بین دو عدد مقایسه انجام می‌شود و عدد بزرگتر  در Max قرار می‌گیرد.

fun main(args: Array<String>) {
   val a:Int = 5
   val b:Int = 2
   var max: Int
   
   if (a > b) {
      max = a
   } else {
      max = b
   }
   print("Maximum of a or b is " +max)
 
   // As expression 
   // val max = if (a > b) a else b
}

در خروجی داریم:

Maximum of a or b is 5

when

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

fun main(args: Array<String>) {
   val x:Int = 5
   when (x) {
      ۱ -> print("x = = 1")
      ۲ -> print("x = = 2")
      
      else -> { // Note the block
         print("x is neither 1 nor 2")
      }
   }
}

که در خروجی این کد مشاهده می‌کنیم:

x is neither 1 nor 2

For

حلقه For برای برنامه‌نویسان ابزاری کاربردی است تا در ساختارهای داده تکرار لازم را ایجاد کنند. ساختار حلفه For در کاتلین تقریبا مشابه جاوا است. مثالی از استفاده For در کاتلین را مشاهده می‌کنید:

fun main(args: Array<String>) {
   val items = listOf(1, 2, 3, 4)
   for (i in items) println("values of the array"+i)
}

خروجی این کد به شکل زیر است:

values of the array1
values of the array2
values of the array3
values of the array4

While و Do While

این حلقه زمانی استفاده می‌شود که نیاز داریم تا زمان برقرار بودن یک شرط خاص، یک عملیات مشخص انجام شود. برای درک بهتر به مثال زیر توجه کنید:

fun main(args: Array<String>) {
   var x:Int = 0
   println("Example of While Loop--")
   
   while(x< = 10) {
      println(x)
      x++
   } 
}

از این کد به خروجی زیر خواهیم رسید:

Example of While Loop--
۰
۱
۲
۳
۴
۵
۶
۷
۸
۹
۱۰

گاهی ابتدا دستور و سپس شرط می‌آید که به آن Do While گفته می‌شود.

fun main(args: Array<String>) {
   var x:Int = 0
   do {
      x = x + 10
      println("I am inside Do block---"+x)
   } while(x <= 50)
}

و در خروجی خواهیم دید:

I am inside Do block---10
I am inside Do block---20
I am inside Do block---30
I am inside Do block---40
I am inside Do block---50
I am inside Do block---60

کلام آخر

زبان برنامه نویسی کاتلین یک زبان برنامه‌نویسی مدرن، سطح بالا و سریع است. این زبان به‌تازگی توسط گوگل به‌عنوان «زبان رسمی توسعه اپلیکیشن اندروید» ارائه شده است. این زبان بر پایه جاوا طراحی شده است و نزدیکی زیادی به آن دارد. طراح کاتلین طراح یکی از IDEهای پرکاربرد جاوا با نام Intllij است. برای استفاده از کاتلین هم باید یکی از IDE های جاوا را به کار ببرید. در این مقاله سعی کردیم شما را با نصب و مبانی کار با کاتلین آشنا کنیم.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا