Тип Any
можно назвать матерью всех прочих типов (кроме типов Null, которые мы рассмотрим в будущих уроках). В Kotlin каждый тип, будь то Int
или String, считается Any
. Это напоминает тип Object
в Java, который является корнем все[ типов, кроме примитивных данных.
К примеру, в Kotlin можно объявить литералы Int
и String
как Any
:
1 2 | val anyNumber: Any = 42 val anyString: Any = "42" |
Тип Unit в Kotlin (void)
Unit
является специальным типом, который всегда представляет только одно значение: объект Unit. Он похож на тип void
в Java, только он упрощает работу с генериками, которые будут рассмотрены в будущих уроках. Каждая функция (думайте о функции как о фрагменте кода многократного использования), которая явно не возвращает тип, например String
, возвращает Unit
т.е. void
если вам ассоциация с Java более близка.
К примеру, далее идет код функции, которая просто складывает 2 + 2
и как бы должна вывести результат, но на самом деле ничего не возвращает:
1 2 3 4 | fun add() { val result = 2 + 2 println(result) } |
Результатом функции будет тип Unit
, так что функция свыше аналогична следующей:
1 2 3 4 | fun add(): Unit { val result = 2 + 2 println(result) } |
Тип Nothing в Kotlin
Nothing
является типом, который полезен при объявлении функции, которая не только ничего не возвращает, но и не завершается.
Это может произойти, если функция либо заставляет программу полностью остановиться, генерируя исключение (ошибку) Exception
, либо просто продолжается бесконечно без завершения (вечный цикл).
К примеру, наверное, это самая печальная функция из когда-либо написанных:
1 2 3 4 5 | fun doNothingForever(): Nothing { while(true) { } } |
В будущем мы подробнее рассмотрим цикл while, но пока достаточно понять, что данная функция продолжается бесконечно и ничего не возвращает. Добро пожаловать в мир Nothing!
Здравствуйте, ошибка в строке, далее цитата :
« Это напоминает тип
Object
в Java, который является корнем все[ типов, кроме примитивных данных.»*это самая печальная функция из когда-либо написанных улыбнуло)))