У цій статті ви дізнаєтесь про перетворення типів; як перетворити змінну одного типу в інший за допомогою прикладу.
У Kotlin числове значення одного типу не перетворюється автоматично на інший тип, навіть коли інший тип більше. Це відрізняється від того, як Java обробляє числові перетворення. Наприклад;
На Java
int число1 = 55; довге число2 = число1; // Дійсний код
Тут значення number1
типу int
автоматично перетворюється на тип long
і присвоюється змінній number2.
У Котліні,
val number1: Int = 55 val number2: Long = number1 // Помилка: невідповідність типу.
Хоча розмір Long більше ніж Int
, Котлін не перетворює Int автоматично в Long.
Натомість вам потрібно використовувати toLong()
явно (для перетворення на тип Long). Котлін робить це для безпеки типу, щоб уникнути сюрпризів.
val number1: Int = 55 val number2: Long = number1.toLong ()
Ось список функцій у Kotlin, що використовуються для перетворення типів:
toByte()
toShort()
toInt()
toLong()
toFloat()
toDouble()
toChar()
Зверніть увагу, що перетворення Boolean
типів не існує.
Перетворення з більшого на менший тип
Зазначені вище функції можна використовувати в обох напрямках (перетворення з більшого на менший тип та перетворення з меншого на більший тип).
Однак перетворення з більшого на менший тип може зменшити значення. Наприклад,
fun main(args : Array) ( val number1: Int = 545344 val number2: Byte = number1.toByte() println("number1 = $number1") println("number2 = $number2") )
Коли ви запускаєте програму, результат буде:
число1 = 545344 число2 = 64
Також перегляньте ці статті, пов’язані з перетворенням типів:
- Перетворення рядка в Int і Int в рядок
- Довгий до внутрішнього та внутрішнього до довгого перетворення
- Подвійне перетворення в Int і Int в подвійне перетворення
- Довге до подвійного та подвійне до довгого перетворення
- Char до Int і Int до Char
- Перетворення рядка в довгий та довгий у рядок
- Рядок до масиву та перетворення масиву до рядка
- Рядок у булеву та перетворення булевої у рядок
- Рядок у байт та перетворення байту в рядок
- Перетворення Int в байт і перетворення байтів в Int