Я часто сталкиваюсь с сценарием, где у меня есть абстрактные функции расширения внутри типа. interface PetScript { fun Pet.feed() fun Pet.call() } Наличие функций функций расширения допускает очень минималистические реализации, потому что это дает автоматический контекст. К сожалению, единственный способ использовать эти функции – написать стандартные стандартные шаблоны, которые переходят к расширениям. interface PetScript { […]
Мой код выглядит следующим образом: open class Particle class Electron : Particle() open class Element(val name: String) { open fun Particle.react(name: String): Unit { println("$name is reacting with a particle") } open fun Electron.react(name: String): Unit { println("$name is reacting with an electron") } fun react(particle: Particle): Unit { particle.react(name) } } fun main(args: Array<String>) […]