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

آموزش متغیرها در کاتلین ، انواع آنها و تبدیل متغیرهامقدمهکاتلین یک زبان برنامه نویسی مدرن است که روی ماشین مجازی جاوا اجرا میشود و کدهای آن به بایت کدهای جاوا کامپایل میشود.این زبان رایگان و اوپن سورس است و به برنامه نویسان اجازه میدهد تا اپلیکیشن های اندرویدی را بهتر و سریعتر تولید کنند .کاتلین ۱۰۰ درصد با جاوا سازگار است به عبارتی دیگر در یک پروژه میشود در کنار جاوا از کاتلین یا برعکس استفاده کرد .پس شما میتوانید بخشی از کدهای خود را با کاتلین بنویسید و نگرانی خرابی پروژه ی خود نباشید .علاوه بر این کاتلین ساده ،‌ کدهای خوانا و دارای ابزارهای زیادی است .از کاتلین میشود سمت سرور هم استفاده کرد ولی الان توجه بیشتر برنامه نویسان به بخش برنامه نویسی اپلیکیشن های اندرویدی با کاتلین است .از زمانی که کاتلین بعنوان زبان رسمی توسط شرکت گوگل انتخاب شد هر روز در حال محبوب تر شدن است .متغیرها در زبان برنامه نویسی کاتلین ( 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 )تفاوت بین کلمات کلیدی 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 )اگر یادتان باشد ما در زبان برنامه نویسی جاوا دو نوع از انواع متغیرها را داشتیممتغیرهای نوع primitive که شامل int, long, boolean, byte, char و ... است .متغیرهای نوع reference که شامل String ها و آرایه ها و ... .جاوا از پکیج های مختلفی برای تعریف متغیرها استفاده میکند مثلا java.lang.Integer ولی در کاتلین هر نوع متغیر بعنوان یک آبجکت تعریف میشود .انواع متغیرهای عددی در زبان برنامه نویسی کاتلین ( kotlin )انواع متغیرهای اعداد در زبان برنامه نویسی کاتلین از لیست زیر تشکیل شده استLong—64 bitInt—32 bitShort—16 bitByte—8 bitمتغیرهای نوع اعشاری از نوع های زیر تشکیل شده است .Double—64 bitFloat—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منبع :‌آواسام