На этом шаге мы приведем общие сведения об обобщениях.
Ранее мы узнали, что список может содержать элементы любого типа: целые числа, строки и даже новые типы, объявленные вами:
val listOfInts: List<Int> = listOf(1, 2, 3) val listOfStrings: List<String> = listOf("string one", "string two") val listOfRooms: List<Room> = listOf(Room(), TownSquare())
Списки могут хранить элементы любого типа благодаря обобщениям, то есть особенности системы типов, которая позволяет функциям и типам работать с типами, которые еще неизвестны вам или вашему компилятору. Обобщения расширяют область повторного использования определений классов, потому что позволяют вашим определениям работать со многими типами.
В дальнейших шагах вы научитесь создавать обобщенные классы и функции, которые работают с обобщающими параметрами типов. Мы используем проект Sandbox и смоделируем в нем обобщенный класс LootBox, который хранит виртуальную награду.
На следующем шаге мы рассмотрим объявление обобщенных типов.