Ребята из Jetbrains работают над расширением механизма компаньонов (companions), чтобы открыть новые возможности для организации кода и улучшить совместимость между различными платформами. В этой статье мы расскажем о новых возможностях и дадим предварительные рекомендации по миграции.
Блоки-компаньоны и расширения
Во многих языках программирования существует понятие членов класса или типа — функциональности, которая относится не к отдельным экземплярам класса, а к самому классу. К этой категории часто относятся константы, вспомогательные функции и фабричные методы.
val v1 = Vector(1.0, 2.0) // обычный вектор