Суффиксы типов в Kotlin
Сразу после цифр можно поставить букву.
Ее называют суффиксом. Буква задает
тип самого числа. Например, буква L
задает Long:
val num = 100L
println(num) // выведет 100
Буква u задает число без знака.
У записи 50u тип UInt:
val num = 50u
println(num) // выведет 50
Буквы u и L можно поставить вместе.
Получается ULong:
val num = 100uL
println(num) // выведет 100
Буква f задает Float:
val num = 3.14f
println(num) // выведет 3.14
Букву L пишут большой. Буквы u
и f можно и большими, и маленькими:
val num = 50U
println(num) // выведет 50
И так тоже:
val num = 3.14F
println(num) // выведет 3.14
Буква L не обязательна, если тип
Long уже написан слева:
val num: Long = 100
println(num) // выведет 100
Без буквы целое имеет тип Int, если оно
в него входит:
val num = 50
println(num) // выведет 50
Если целое в Int не входит, тип числа
сам становится Long:
val num = 3000000000
println(num) // выведет 3000000000
Дробь без буквы имеет тип Double:
val num = 3.14
println(num) // выведет 3.14
Для UInt, ULong и Float
букву пишут и тогда, когда тип уже стоит слева:
val num1: UInt = 50u
val num2: Float = 3.14f
println(num1) // выведет 50
println(num2) // выведет 3.14
Дан следующий код:
val num1: Long = 100
val num2 = 50
val num3 = 2.5
println(num1)
println(num2)
println(num3)
Скажите, соберется ли этот код без суффиксов.
Какой тип у числа 50, если буквы
после него нет?
Какой тип у числа 3.14, если буквы
после него нет?
Какой тип у записи 50u?
Какой тип у записи 3.14f?
Какой тип у записи 100L?
Какой тип у записи 100uL?