Ответ
Приведение типов (type casting) — это преобразование значения одного типа в другой. В Kotlin/Java есть два вида:
- Явное приведение (explicit) — требует указания типа:
val num: Int = 42
val longNum: Long = num.toLong() // явное
- Неявное приведение (implicit) — автоматическое, когда компилятор уверен в безопасности:
val longNum: Long = 42L
val doubleNum: Double = longNum.toDouble()
Важно:
- В Kotlin нет автоматического приведения для чисел (в отличие от Java)
- Для классов используется оператор
as(опасный) илиas?(безопасный):
val obj: Any = "String"
val str: String = obj as String // может выбросить ClassCastException
Smart casts работают, когда компилятор может доказать тип:
if (obj is String) {
println(obj.length) // автоматическое приведение
}