Generics

Как и Java, Kotlin обеспечивает типизацию переменных более высокого порядка, называемую Generics. В этой главе мы узнаем, как Kotlin реализует generics (дженерики) и как разработчик может использовать эти функции, предоставляемые библиотекой дженериков. |Реализация generics очень похожи на Java, но разработчик Kotlin ввел два новых ключевых слова «out» и «in» , чтобы сделать код Kotlin более читабельным и простым для разработчика.

В Kotlin, класс и тип — совершенно разные понятия. Например List — это класс в Kotlin, но List<String> — это тип в Kotlin. В следующем примере показано, как generics реализован в Kotlin.

В приведенном выше коде мы объявили одно «целое число», а позже присвоили этой переменной числовую переменную. Это возможно, потому что «Int» является подклассом класса Number, поэтому преобразование типа происходит автоматически во время выполнения и выдает результат «1».

Давайте узнаем больше о generics. Лучше использовать общий тип данных, когда мы не уверены в типе данных, который собираемся использовать в приложении. Как правило, в Kotlin generics определяются как <T> , где «T» означает шаблон, который может быть динамически определен компилятором Kotlin. В следующем примере мы увидим, как использовать общие типы данных в языке программирования Kotlin.

В приведенном выше фрагменте кода мы создаем один класс с общим типом возвращаемого значения, который представлен как <T> . Взгляните на основной метод, где мы динамически определили его значение при запуске, доказав тип значения при создании объекта этого класса.

Когда мы хотим присвоить универсальный тип любому типу из его супертипов, нам нужно использовать ключевое слово «out», а когда мы хотим присвоить универсальный тип любому типу из его подтипов, нам нужно использовать «in». В следующем примере мы будем использовать ключевое слово «out». Точно так же вы можете попробовать использовать ключевое слово «in».

Поделись с друзьями:
Если вам понравилась статья, подписывайтесь на наши социальные сети.

Оставьте комментарий

шестнадцать − восемь =