در این بخش از مقاله آموزش کاتلین به بررسی تبدیل نوع و مثالهای آن میپردازیم. در کاتلین، یک مقدار عددی از یک نوع، حتی در صورتی که نوع دیگر بزرگتر باشد، به صورت خودکار به نوع دیگری تبدیل نمیشود. از این نظر کاتلین طرز کار متفاوتی نسبت به شیوه مدیریت تبدیل عددی در جاوا دارد. برای مثال در جاوا به صورت زیر عمل میکنیم:
int number1 = 55;
long number2 = number1;// Valid code
در مثال فوق، مقدار number1 از نوع int به صورت خودکار به نوع long تبدیل میشود و به متغیر number2 انتساب مییابد.
از سوی دیگر در کاتلین به صورت زیر عمل میکنیم:
val number1: Int = 55
val number2: Long = number1// Error: type mismatch.
حتی با این که اندازه Long بزرگتر از Int است، کاتلین به صورت خودکار Int را به Long تبدیل نمیکند. بلکه باید از به صورت صریح از متد ()toLong استفاده کنیم تا نوع متغیر را به Long تبدیل کنیم. کاتلین از این کار برای جلوگیری از شگفتزده کردن کاربر امتناع میکند.
val number1: Int = 55
val number2: Long = number1.toLong()
در این بخش فهرستی از تابعهای کاتلین را میبینید که برای تبدیل نوع استفاده میشوند:
- toByte()
- toShort()
- toInt()
- toLong()
- toFloat()
- toDouble()
- toChar()
توجه کنید که تابعی برای تبدیل انواع Boolean وجود ندارد.
تبدیل از نوع بزرگتر به نوع کوچکتر
تابعهای مورد اشاره فوق را میتوان در هر دو جهت یعنی تبدیل از نوع کوچک به بزرگ و برعکس، مورد استفاده قرار داد. با این حال تبدیل از نوعهای بزرگتر به انواع کوچکتر ممکن است باعث تعدیل یک مقدار شود. به مثال زیر توجه کنید:
fun main(args : Array<String>) { val number1: Int = 545344 val number2: Byte = number1.toByte() println("number1 = $number1") println("number2 = $number2")
}
خروجی اجرای کد فوق به صورت زیر است:
number1 = 545344 number2 = 64