آموزش متغیرها در کاتلین ، انواع آنها و تبدیل متغیرها
یادگیری پیاده سازی متغیرها در کاتلین و انواع متغیرها در زبان کاتلین
کاتلین یک زبان برنامه نویسی مدرن است که روی ماشین مجازی جاوا اجرا میشود و کدهای آن به بایت کدهای جاوا کامپایل میشود. این زبان رایگان و اوپن سورس است و به برنامه نویسان اجازه میدهد تا اپلیکیشن های اندرویدی را بهتر و سریعتر تولید کنند. کاتلین ۱۰۰ درصد با جاوا سازگار است به عبارتی شما میتوانید درون یک پروژه زبان کاتلین با جاوا را با هم استفاده کنید.
پس شما میتوانید بخشی از کدهای خود را با کاتلین بنویسید و نگرانی خرابی پروژه ی خود نباشید. علاوه بر این کاتلین ساده ، کدهای خوانا و دارای ابزارهای زیادی است. از کاتلین میشود سمت سرور هم استفاده کرد ولی الان توجه بیشتر برنامه نویسان به بخش برنامه نویسی اپلیکیشن های اندرویدی با کاتلین است. از زمانی که کاتلین بعنوان زبان رسمی توسط شرکت گوگل انتخاب شد هر روز در حال محبوب تر شدن است .
متغیرها در زبان برنامه نویسی کاتلین ( Kotlin )
در زبان برنامه نویسی kotlin از کلمه ی کلیدی val برای تغریف متغیرهای ثابت و از کلمه ی کلیدی var برای تعریف متغیرهای معمولی استفاده میشود .
شما میتوانید نوع متغیر را بصورت مثلا String یا Int یا هر چیز دیگری ، بعد از نام متغیر تعریف کنید .
در مثالی که آورده ایم شما مشاهده میکنید که ما یک متغیر ساخته ایم با نام firstName و از نوع String که یک val یا ثابت است .
val firstName: String = "Chike"
اما به زودی خواهید فهمید که در زبان کاتلین شما میتوانید نوع متغیر را تعریف نکنید و زبان کاتلین از این بابت شکایتی نخواهد کرد
val lastName = "Mgbemena" // این خط مشکلی ندارد
همانطور که در خط بالا مشاهده میکنید ما نوع String را مشخص نکردیم و مشکلی هم وجود ندارد .
کد بالا هیچ خطایی ندارد چون کامپایلر نوع متغیر را حدس خواهد زد و خودش تشخیص خواهد داد و این یکی از مزیت های زبان برنامه نویسی کاتلین است .
تفاوت متغیرهای var و val در زبان برنامه نویسی کاتلین ( Kotlin )
تفاوت بین کلمات کلیدی val و var در این است که اولی تغییر ناپذیر یا فقط خواندنی است (مقدار آن قابل تغییر نیست) ، در حالی که دومی قابل تغییر است (مقدار آن قابل تغییر است).
به تکه کد زیر بعنوان مثال دقت کنید.
val dateOfBirth = "29th March, 1709"
dateOfBirth = "25th December, 1600" // cannot be changed
var car = "Toyota Matrix"
car = "Mercedes-Maybach" // can be changed
توجه داشته باشید اگر یک متغیر از نوع var تعریف شود مقدار آن در طول کدنویسی قابل تغییر است ولی نوع آن که در ابتدا مشخص میشود تا پایان همان نوع باقی می ماند .
برای مثال کد زیر خطا دارد چون سعی داریم مقداری را در متغیری واریز کنیم که نوع آن در ابتدا متفاوت تعریف شده است .
var age = 12
age = "12 years old" // Error: type mismatch
در زبان برنامه نویسی کاتلین توصیه میشود تا میتوانید متغیرهای خود را بصورت ثابت یا val تعریف کنید تا در جاهای دیگر مقدارش عوض نشود .
این کار باعث مستحکم شدن کدنویسی شما میشود و متغیرها در آینده توسط اتفاقات غیرمنتظره ی دیگری ارزش خود را از دست نمیدهند .
نکته ی دیگر در مورد متغیرهای val این است که شما میتوانید ابتدا نوع متغیر را تعریف کنید و سپس مقدار آن را تعریف کنید .
اما همچنان شما فقط یکبار میتوانید برای متغیرهای val مقدار دهی کنید .
برای مثال کد زیر را ببینید .
val carName: String
carName = "Toyota Matrix" // will compile
اگر یادتان باشد در زبان جاوا شما میتوانستید چندین متغیر را در یک خط بنویسید و تعریف کنید ولی در کاتلین دیگر این مورد امکان ندارد و هر متغیر فقط در یک خط باید تعریف شود مثال زیر را ببینید
val carName = "BMW", streetName = "Oke street" // this won't compile
// this will compile
var carName = "BMW"
var streetName = "Oke street"
ما یک دوره ی آموزش کامل برای زبان کاتلین در ۹۹ جلسه بصورت ویدیویی آماده کرده ایم که یکی از با کیفیت ترین و بهترین دوره های آموزشی کاتلین است شما میتوانید این دوره را از لینک زیر دریافت کنید .
دوره آموزش برنامه نویسی اندروید با کاتلین kotlin بصورت پروژه محور
تعریف نوع متغیرها در زبان برنامه نویسی کاتلین
همانطور که بالاتر هم توضیح دادیم کاتلین یک مکانیسم خودکار برای تشخیص نوع متغیرها دارد یعنی اگر برای مثال ما کدهای زیر را داشته باشیم
val country = "Nigeria" // type is inferred by compiler
val code = 234
کاتلین بصورت هوشمندانه خواهد فهمید که متغیر country نوع String است چونکه عبارت Nigeria یک عبارت String است و این بصورت هوشمندانه توسط کاتلین انتخاب میشود .
پس برای تعریف نوع متغیرها مختار هستید و نیاز به نگرانی در این باره نیست
متغیرهای نوع Basic در زبان برنامه نویسی کاتلین ( kotlin )
اگر یادتان باشد ما در زبان برنامه نویسی جاوا دو نوع از انواع متغیرها را داشتیم
- متغیرهای نوع primitive که شامل int, long, boolean, byte, char و ... است .
- متغیرهای نوع 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 را در آخر متغیر قرار دادیم که اینها از نظر سینتکس کاتلین اجباری هستند .
همچنین اعداد را میتوانید در قالب هگزادسیمال با پیشوند 0x یا 0X تعریف کنید و همچنین برای تعریف اعداد در قالب باینری میتوانید از پیشوند 0b یا 0B استفاده کنید .
همچنین برای تعریف مقادیر 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 = "101"
val intValue = stringNumber.toInt()
همچنبن ما کد بالاا را در یک خط به شکل زیر میتونیم بنویسیم
val intValue = "101".toInt()
متغیرهای نوع Boolean در زبان برنامه نویسی کاتلین (kotlin)
متغیرهای نوع Boolean درست همانند متغیرهای جاوا است . این متغیرها فقط یک نتیجه ی true یا false برمیگردانند .
درست همانند جاوا میتوانید از || و && و ! استفاده کنید
به مثال زیر دقت کنید
val myTrueBoolean = true
val myFalseBoolean = false
val x = 1
val y = 3
val w = 4
val z = 6
val n = x < z && z > w // n is true
متغیرهای رشته ای یا String در زبان برنامه نویسی کاتلین (kotlin)
این متغیرها در بردارنده ی رشته ها هستند که در همه ی زبان های برنامه نویسی مرسوم است . در زبان کاتلین مقدار متغیرهای رشته ای حتما باید درون جفت کوتیشن یا " قرار بگیرد . به مثال زیر دقت کنید
val myString = "This is a String"
val escapeString = "This is a string with new line \n"
برای مقدار دهی به متغیر String در چند خط میتوانید از مثال زیر استفاده کنید
val multipleStringLines = """
This is first line
This is second line
This is third line """
همچنین زبان کاتلین راهی برای استفاده ی متغیرها درون رشته ها برای شما فراهم کرده است به مثال زیر دقت کنید
val accountBalance = 200
val bankMessage = "Your account balance is $accountBalance" // Your account balance is 200
شاید این بخش شما را یاد php بیاندازد چون آنجا هم درون یک رشته میشود با علامت $ مقدار متغیر را استفاده کرد .
بنابراین شما برای چاپ کردن مقدار $ درون رشته باید آنرا بصورت \$ بنویسید .
همچنین شما میتوانید با استفاده از آکولاد متد ها را درون رشته صدا بزنید مثال زیر را ببینید
val name = "Chike"
val message = "The first letter in my name is ${name.first()}" // The first letter in my name is C
همچنین کار جالبی که با رشته های زبان کاتلین میتوانید انجام دهید این است که میتوانید دستورات منطقی مثل شرط را درونش بنویسید. به مثال زیر دقت کنید
val age = 40
val anotherMessage = "You are ${if (age > 60) "old" else "young"}" // You are young