آموزش متغیرها در کاتلین ، انواع آنها و تبدیل متغیرها

آموزش متغیرها در کاتلین ، انواع آنها و تبدیل متغیرها
آموزش متغیرها در کاتلین ، انواع آنها و تبدیل متغیرها

مقدمه

کاتلین یک زبان برنامه نویسی مدرن است که روی ماشین مجازی جاوا اجرا میشود و کدهای آن به بایت کدهای جاوا کامپایل میشود.

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

کاتلین ۱۰۰ درصد با جاوا سازگار است به عبارتی دیگر در یک پروژه میشود در کنار جاوا از کاتلین یا برعکس استفاده کرد .

پس شما میتوانید بخشی از کدهای خود را با کاتلین بنویسید و نگرانی خرابی پروژه ی خود نباشید .

علاوه بر این کاتلین ساده ،‌ کدهای خوانا و دارای ابزارهای زیادی است .

از کاتلین میشود سمت سرور هم استفاده کرد ولی الان توجه بیشتر برنامه نویسان به بخش برنامه نویسی اپلیکیشن های اندرویدی با کاتلین است .

از زمانی که کاتلین بعنوان زبان رسمی توسط شرکت گوگل انتخاب شد هر روز در حال محبوب تر شدن است .

متغیرها در زبان برنامه نویسی کاتلین ( Kotlin )

در زبان برنامه نویسی kotlin از کلمه ی کلیدی val برای تغریف متغیرهای ثابت و از کلمه ی کلیدی var برای تعریف متغیرهای معمولی استفاده میشود .

شما میتوانید نوع متغیر را بصورت مثلا String یا Int یا هر چیز دیگری ، بعد از نام متغیر تعریف کنید .

در مثالی که آورده ایم شما مشاهده میکنید که ما یک متغیر ساخته ایم با نام firstName و از نوع String که یک val یا ثابت است .

val firstName: String = &quotChike&quot

اما به زودی خواهید فهمید که در زبان کاتلین شما میتوانید نوع متغیر را تعریف نکنید و زبان کاتلین از این بابت شکایتی نخواهد کرد

val lastName = &quotMgbemena&quot // این خط مشکلی ندارد

همانطور که در خط بالا مشاهده میکنید ما نوع String را مشخص نکردیم و مشکلی هم وجود ندارد .

کد بالا هیچ خطایی ندارد چون کامپایلر نوع متغیر را حدس خواهد زد و خودش تشخیص خواهد داد و این یکی از مزیت های زبان برنامه نویسی کاتلین است .

تفاوت متغیرهای var و val در زبان برنامه نویسی کاتلین ( Kotlin )

تفاوت متغیرهای var و val در زبان برنامه نویسی کاتلین ( Kotlin )
تفاوت متغیرهای var و val در زبان برنامه نویسی کاتلین ( Kotlin )


تفاوت بین کلمات کلیدی val و var در این است که اولی تغییر ناپذیر یا فقط خواندنی است (مقدار آن قابل تغییر نیست) ، در حالی که دومی قابل تغییر است (مقدار آن قابل تغییر است).

به تکه کد زیر بعنوان مثال دقت کنید.

val dateOfBirth = &quot29th March, 1709&quot
dateOfBirth = &quot25th December, 1600&quot // cannot be changed
 
var car = &quotToyota Matrix&quot
car = &quotMercedes-Maybach&quot // can be changed

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

برای مثال کد زیر خطا دارد چون سعی داریم مقداری را در متغیری واریز کنیم که نوع آن در ابتدا متفاوت تعریف شده است .

var age = 12
age = &quot12 years old&quot // Error: type mismatch

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

این کار باعث مستحکم شدن کدنویسی شما میشود و متغیرها در آینده توسط اتفاقات غیرمنتظره ی دیگری ارزش خود را از دست نمیدهند .

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

اما همچنان شما فقط یکبار میتوانید برای متغیرهای val مقدار دهی کنید .

برای مثال کد زیر را ببینید .

val carName: String
carName = &quotToyota Matrix&quot // will compile

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

val carName = &quotBMW&quot, streetName = &quotOke street&quot // this won't compile
 
// this will compile
var carName = &quotBMW&quot
var streetName = &quotOke street&quot
اگر علاقه مند هستید یک دوره ی آموزشی کاملی برای زبان کاتلین ببینید من دوره زیر را پیشنهاد میدم خودم استفاده کردم و کیفیت عالی بود :‌

دوره آموزش برنامه نویسی اندروید با کاتلین kotlin بصورت پروژه محور

تعریف نوع متغیرها در زبان برنامه نویسی کاتلین

همانطور که بالاتر هم توضیح دادیم کاتلین یک مکانیسم خودکار برای تشخیص نوع متغیرها دارد یعنی اگر برای مثال ما کدهای زیر را داشته باشیم

val country = &quotNigeria&quot // type is inferred by compiler
val code = 234

کاتلین بصورت هوشمندانه خواهد فهمید که متغیر country نوع String است چونکه عبارت Nigeria یک عبارت String است و این بصورت هوشمندانه توسط کاتلین انتخاب میشود .

پس برای تعریف نوع متغیرها مختار هستید و نیاز به نگرانی در این باره نیست

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

اگر یادتان باشد ما در زبان برنامه نویسی جاوا دو نوع از انواع متغیرها را داشتیم

  1. متغیرهای نوع primitive که شامل int, long, boolean, byte, char و ... است .
  2. متغیرهای نوع reference که شامل String ها و آرایه ها و ... .

جاوا از پکیج های مختلفی برای تعریف متغیرها استفاده میکند مثلا java.lang.Integer ولی در کاتلین هر نوع متغیر بعنوان یک آبجکت تعریف میشود .

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

انواع متغیرهای اعداد در زبان برنامه نویسی کاتلین از لیست زیر تشکیل شده است

  • Long—64 bit
  • Int—32 bit
  • Short—16 bit
  • Byte—8 bit

متغیرهای نوع اعشاری از نوع های زیر تشکیل شده است .

  • Double—64 bit
  • Float—32 bit

مثال استفاده از متغیرهای عددی در زبان برنامه نویسی کاتلین

val myInt = 55
val myLong = 40L
val myFloat = 34.43F
val myDouble = 45.78
val myHexadecimal = 0x0F
val myBinary = 0b010101

در مثال بالا شما مشاهده میکنید که ما در اخر مقدار متغیر اعشاری حرف F را قرار دادیم و شما میتوانید از حرف کوچک f نیز استفاده کنید همچنین برای متغیر نوع long حرف L را در آخر متغیر قرار دادیم که اینها از نظر سینتکس کاتلین اجباری هستند .

همچنین اعداد را میتوانید در قالب هگزادسیمال با پیشوند ۰x یا ۰X تعریف کنید و همچنین برای تعریف اعداد در قالب باینری میتوانید از پیشوند ۰b یا ۰B استفاده کنید .

همچنین برای تعریف مقادیر Long در زبان برنامه نویسی کاتلین شما میتوانید به شکل زیر نیز عمل کنید

val myLong = 19L
val myLongAgain: Long = 40

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

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

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

مثلا کد زیر باعث خطا میشود

val myNumber = 400
val myNumberAgain: Long = myNumber // throws Error: Type mismatch

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

  • toByte()
  • toInt()
  • toLong()
  • toFloat()
  • toDouble()
  • toChar()
  • toShort()

به مثال زیر توجه کنید

val myInt = 987
val myLong = myInt.toLong()

در مثال بالا ما مقدار int را به مقدار long تبدیل کرده ایم ما میتوانیم معکوس این کار با تابع toInt انجام دهیم . در تبدیل نوع داده ها توجه کنید که ممکن است سایز حافظه ی متغیر تغییر پیدا کند مثلا int فضای کمتری نسبت به long دارد .

تبدیل متغیر رشته ای به متغیر عدد در زبان کاتلین

برای تبدیل یک رشته که درونش فقط اعداد وجود دارد شما میتوانید از متد toint استفاده کنید مثال زیر دقت کنید

val stringNumber = &quot101&quot
val intValue = stringNumber.toInt()

همچنبن ما کد بالاا را در یک خط به شکل زیر میتونیم بنویسیم

val intValue = &quot101&quot.toInt()

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

متغیرهای نوع Boolean درست همانند متغیرهای جاوا است . این متغیرها فقط یک نتیجه ی true یا false برمیگردانند .

درست همانند جاوا میتوانید از || و && و ! استفاده کنید

به مثال زیر دقت کنید

val myTrueBoolean = trueval myFalseBoolean = falseval x = 1
val y = 3
val w = 4
val z = 6
 
val n = x < z && z > w // n is true

متغیرهای رشته ای یا String در زبان برنامه نویسی کاتلین (kotlin)

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

val myString = &quotThis is a String&quot
val escapeString = &quotThis is a string with new line \n&quot

برای مقدار دهی به متغیر String در چند خط میتوانید از مثال زیر استفاده کنید

val multipleStringLines = &quot&quot&quot
        This is first line
        This is second line
        This is third line &quot&quot&quot

همچنین زبان کاتلین راهی برای استفاده ی متغیرها درون رشته ها برای شما فراهم کرده است به مثال زیر دقت کنید

val accountBalance = 200
val bankMessage = &quotYour account balance is $accountBalance&quot // Your account balance is 200

شاید این بخش شما را یاد php بیاندازد چون آنجا هم درون یک رشته میشود با علامت $ مقدار متغیر را استفاده کرد .

بنابراین شما برای چاپ کردن مقدار $ درون رشته باید آنرا بصورت \$ بنویسید .

همچنین شما میتوانید با استفاده از آکولاد متد ها را درون رشته صدا بزنید مثال زیر را ببینید

val name = &quotChike&quot
val message = &quotThe first letter in my name is ${name.first()}&quot // The first letter in my name is C

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

val age = 40
val anotherMessage = &quotYou are ${if (age > 60) &quotold&quot else &quotyoung&quot}&quot // You are young


منبع :‌آواسام