Extensions (расширения) — что это и для чего нужны?



Это функции, которые позволяют добавить функционал к уже определенным типам.



Kotlin предлагает нам концепцию «Extension Function»: мы можем к любому существующему типу добавить функцию-расширение, которая будет доступна через все объекты этого типа (но будет иметь доступ только к публичным частям).



Для добавления функционала класса, если он закрыт для расширения (например, лежит в сторонней библиотеке).



• Для расширения nullable типов.

• Для расширения companion object.

• Для расширения свойств существующих классов.

• Для конвертации моделей из одной в другую.

•Для расширения функционала дженериков.