Ответ
Нет, делегированное свойство (by) не может вызывать конструктор класса напрямую. Делегат должен быть экземпляром класса, а не самим классом. Однако можно передать аргументы конструктора при создании делегата:
class ExampleDelegate(private val initValue: String) {
operator fun getValue(thisRef: Any?, property: KProperty<*>): String = initValue
}
class MyClass {
val myProperty by ExampleDelegate("Initial Value") // Здесь вызывается конструктор делегата
}
Коротко: после by должен стоять готовый экземпляр, но можно создать его "на лету" с нужными параметрами конструктора.