Яке значення має на увазі «супутник об’єкта»? Поки я використовую його просто для заміни Java, static
коли мені це потрібно.
Мене плутають:
- Чому його називають «супутником»?
- Чи означає це, що для створення декількох статичних властивостей я повинен згрупувати їх разом у
companion object
блоці? - Щоб миттєво створити однотонний екземпляр, який охоплюється класом, я часто пишу
:
companion object {
val singleton by lazy { ... }
}
що здається однозначним способом зробити це. Який кращий спосіб?