قبل از هر چیز، اگه به برنامه نویسی اندروید علاقه مندی، من تو سایتم یک دوره آموزش برنامه نویسی اندروید از سطح کاملا مبتدی تا پیشرفته گذاشتم که کاملا رایگان میتونی ازش استفاده کنی، پس به دوره صفر مطلق اندروید یه سر بزن!
تو این مقاله میخام در مورد نوع داده ها در کاتلین صحبت کنم، همونطور که احتمالا میدونید برعکس جاوا که توی تعریف نوع متغیرها بسیار جدی عمل میکنه و شما نمیتونید هیچ متغیری رو بدون تعریف نوع اون، تعریف کنید. اما کاتلین تو این قضیه اصلا سخت گیر نیست و میتونه نوع داده رو با توجه به مقدار اون تشخیص بده و خیلی کار رو راحت تر میکنه، البته تو کاتلین اگه بخایم هم میتونیم نوع داده برای یک متغیر تعریف کنیم که تو مثالهای پایین کامل بهش پرداختم.
راستی میدونستی ما تو سایت ترولرن یه دوره رایگان آموزش برنامه نویسی کاتلین بصورت مقاله محور داریم، این لیست آموزشهای رایگان ما هستش حتما ببین چون کل کاتلین رو بصورت کاملا رایگان داریم آموزش میدیم.
در کاتلین نوع دادهها از مقدار آن تشخیص داده میشود و نیازی نیست نوع داده را تعیین کنیم:
val myNum = 5 // Int
val myDoubleNum = 5.99 // Double
val myLetter = 'D' // Char
val myBoolean = true // Boolean
val myText = "Hello" // String
ولی خب در صورت تمایل میتوانید برای متغیرهای کاتلین نوع داده تعریف کنید:
val myNum: Int = 5 // Int
val myDoubleNum: Double = 5.99 // Double
val myLetter: Char = 'D' // Char
val myBoolean: Boolean = true // Boolean
val myText: String = "Hello" // String
گاهی اوقات هم هست که نیاز داریم نوع داده را مشخص کنیم، در مقالات بعدی در مورد اینکه چه زمانی باید نوع دادهها را مشخص کنیم بیشتر یاد میگیریم.
انواع دادهها در کاتلین شامل گروههای زیر است:
اعداد و ارقام در کاتلین را میتوانیم به دو گروه تقسیم کنیم ، اعداد صحیح و اعداد اعشاری
انواع معتبر اعداد صحیح عبارتند از Byte، Short، Int و Long.
و برای اعداد اعشاری نیز دو نوع وجود دارد، Float و Double.
نکته: اگر نوع یک متغیر را تعیین نکنیم،برای اعداد صحیح اغلب int و برای اعداد اعشاری double در نظر گرفته میشود.
val myNum: Long = 15000000000L
println(myNum)
در مثال زیر دقت کنید، عدد های تا مقدار 2147483647 یک Int هستند و بعد از آن دیگر در Int جا نمیشوند و Long هستند:
val myNum1 = 2147483647 // Int
val myNum2 = 2147483648L // Long
متغیر Float : اعداد اعشاری بین 3.4e−038 تا 3.4e+038 را در خود جای میدهد. شما باید در انتهای یک مقدار Float از کاراکتر F استفاده کنید:
val myNum: Float = 5.75F
println(myNum)
متغیر Double: اعداد اعشاری بین 1.7e−308 تا 1.7e+038 را در خود جای میدهد.
دقت محاسبهی این دو مقدار با هم متفاوت است، دقت Float تنها شش تا هفت رقم اعشار است درحالیکه متغیرهای Double دقتی در حدود 15 رقم اعشار دارند، بنابراین استفاده از Double برای اکثر محاسبات ایمنتر و دقیقتر است.
برای نمایش اعداد با استفاده از نماد علمی از e یا E استفاده میشود که به معنای توان 10 عدد بعد از آن است، برای مثال 12E4 به معنای 12 ضرب در 10 به توان 4 است که یعنی عدد 120000 (برای راحتی کار میتوان گفت هر عددی بعد از E بود، به همان تعداد 0 به انتهای عدد اضافه میشود مثلا در مثال بالا که بعد از E عدد 4 بود، 4 صفر به انتهای عدد اضافه کرد)
مثالی برای نماد علمی:
val myNum1: Float = 35E3F
val myNum2: Double = 12E4
println(myNum1)
println(myNum2)
که فقط میتواند دو مقدار true و false را داشته باشد به معنای درست یا غلط، این متغیر بیشتر برای تست شرطی استفاده میشود.
برای ذخیره یک کاراکتر استفاده میشود که باید بین دوتا سینگل کوتیشن قرار بگیرد مانند مثال زیر:
val myGrade: Char = 'A'
println(myGrade)
برعکس جاوا، در کاتلین نمیتوانید از مقدار ASCII برای نمایش کاراکتر استفاده کنید، مثلا مقدار 66 در جاوا کاراکتر B را تولید میکند اما در کاتلین کد زیر باعث ایجاد خطا خواهد شد:
val myLetter: Char = 66
println(myLetter) // Error
برای دنبالهای از کاراکترها (متن) استفاده میشود. مقادیر یک رشته باید با دوعدد دابل کوتیشن احاطه شوند. مثالی از String:
val myText: String = "Hello World"
println(myText)
تبدیل نوع در کاتلین
زمانی که یک نوع داده را به نوع دادهی دیگری تبدیل میکنید، تبدیل نوع اتفاق میافتد. در کاتلین تبدیل نوع عددی با جاوا متفاوت است، برای مثال تبدیل از نوع Int به نوع Long با کد زیر امکانپذیر است:
val x: Int = 5
val y: Long = x.toLong()
println(y)
و کد زیر در کاتلین با خطا مواجه میشود:
val x: Int = 5 val y: Long = x
println(y) // Error: Type mismatch
برای تبدیل یک نوع دادهی عددی به نوع دیگر در کاتلین باید از یکی از توابع زیر استفاده کنید:
toByte()
toShort()
toInt()
toLong()
toFloat()
toDouble()
toChar()
خب امیدوارم مطالبی که گفتم مفید باشه براتون، یادتون نره حتما عضو پیج اینستاگرام ترو لرن بشین مطالب آموزنده بصورت روزانه اونجا قرار میگیره.
دوست برنامه نویسی من، برای خوندن مقالات تخصصی اندروید، میتونی به سایت ترولرن هم مراجعه کنی