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

بازه ها Ranges


در زبان کتلین مفهومی به نام بازه یا range وجود دارد. در مطالب قبلی هم در تابعی که نشان می داد که شخص پیر است یا خیر نیز از این مفهوم استفاده کردیم. این مفهوم به این صورت است که ما ابتدا و انتهای یک بازه ی عددی را مشخص می کنیم و با آن کار می کنیم. برای مثال در کد زیر 
val r1 = 1..5
مقدار r1 می تواند 1 یا 2 یا 3 یا 4 یا 5 باشد. همانطور که ملاحظه می کنید برای کار با بازه از .. استفاده می کنیم. ولی این حالتی که در مثال قبل گفتیم حالت بالارونده و یا افزایشی بود. حال برای حالت پایین رونده و کاهشی باید از کلمه کلیدی downTo استفاده کنیم برای مثال : 
val r2 = 5 downTo 1
بنابراین r2 برابر 5و4و3و2و1 خواهد بود. اگر شما می خواهید بازه ای را که دارید بیشتر از یک با هم فاصله داشته باشند باید از کلمه کلیدی step استفاده کنید به مثال زیر دقت کنید. 
val r3 = 5 downTo 1 step 2
بازه ی بالا شامل اعداد 1و 3و 5 خواهد بود. 

عبارت شرطی


عبارت شرطی به دو گونه می باشد که اولی if است. در کتلین if در عبارت به شکلی نوشته می شود که مقداری را بازگشت می دهد. مقداری که شرط if برمی گرداند بستگی به عبارت شرطی دارد که داخل آن نوشته شده است. یعنی اگر شرط درست باشد مقدار متناظر با شرط درست و اگر شرط غلط باشد مقدار متناظر با شرط غلط برای آن ارسال خواهد شد. برای روشن شدن این قضیه به مثال زیر دقت کنید. 
var age = 20
val isEligibleToVote = if(age > 18) "Yes" else "No"

مقدار متغیر isEligibleToVote برابر با yes خواهد بود. شرط دومی که در کتلین از آن استفاده می شود when می باشد. When معادل عبارت switch در زبان جاوا است با این تفاوت که when انعطاف پذیر تر است. برای مثال به کد زیر دقت کنید. 
val age = 17
 
val typeOfPerson = when(age){
     0 -> "New born"
     in 1..12 -> "Child"
     in 13..19 -> "Teenager"
     else -> "Adult"
}

مقدار typeOfPerson با کد بالا برابر Teenager خواهد بود. می بینید که when چه شرط هایی را پشتیبانی می کند. 

حلقه ها


در کتلین شما می توانید از حلقه for برای پیمایش آرایه ها و مجموعه ها و لیست ها و ساختمان داده هایی مانند آن استفاده کنید. سینتکس آن شبیه به for مجموعه ها در جاوا است با این تفاوت که از کلمه کلیدی in به جای : استفاده می کند.مثال زیر یک حلقه را نشان می دهد که یک آرایه رشته ای را پیمایش می کند. 
val names = arrayOf("Jake", "Jill", "Ashley", "Bill")
 
for (name in names) {
    println(name)
}

حال شاید شما بپرسید که پس حلقه for معمولی که داشتیم و از یک عدد شروع می کرد و تا وقتی که به عدد انتهای حلقه نمی رسید حلقه تکرار می شد چه می شود. برای پیاده سازی حلقه for معمولی را پیاده سازی کنیم از بازه ها استفاده می کنیم. یعنی کاری شبیه کد زیر: 
for (i in 0..9) {
    println(i)
}

کد بالا معادل کد زیر در جاو است 
for(int i=0;i<10;i++)
حلقه های دیگری که در کتلین وجود دارند حلقه های while و do while است که سینتکس آنها دقیقا شبیه به سینتکس جاوا می باشد. برای مثال کد زیر کل یک آرایه رشته ای را چاپ می کند. 
val names = arrayOf("Jake", "Jill", "Ashley", "Bill")
var i = names.size()
 
while(i>0) {
    println(names[--i])
}


قالب های رشته ای


کتلین به شما این اجازه را می دهد که بتوانید در داخل یک متن عبارات و متغیر ها را قرار دهید. یعنی شما یک متغیر را داخل یک رشته قرار دهید ولی به جای خود متغیر مقدار آن متغیر در رشته قرار گیرد. برای این کار از $ و براکت استفاده می شود. برای مثال در کد زیر دو مثال آورده شده است که در اولی یک متغیر از نوع رشته تعریف کرده ایم نام متغیر nam است و از آن داخل رشته استفاده شده است. در دومی علاوه بر این که دو متغیر معرفی کرده ایم بر روی متغیر ها عملیاتی را هم انجام داده ایم ولی در خروجی نتیجه عملیات نشان داده می شود. 
val name = "Bob"
println("My name is ${name}") // Prints "My name is Bob"
 
val a = 10
val b = 20
println("The sum is ${a+b}") // Prints "The sum is 30"

تا اینجا شما پایه و اساس زبان کتلین را یاد گرفتید حال از این به بعد می توانید از آن استفاده کرد. شاید در ابتدا برای شما که قبلا جاوا کار کرده اید کمی این زبان غریبه باشد ولی با توانایی هایی که دارد میتوانید در بسیاری از زمینه ها مانند برنامه نویسی اندروید از آن استفاده کنید.
 

آیا این پاسخ به شما کمک کرد؟ 1 کاربر این را مفید یافتند (3 نظرات)