Как улучшить ленивого делегата? - PullRequest
0 голосов
/ 29 августа 2018

Как я могу улучшить это объявление:

val __name: String by lazy {
     createHTML().small {
         +name
     }
}

как мой собственный строитель делегатов html:

val __name: String by html {
    small {
        +name
    }
}

1 Ответ

0 голосов
/ 29 августа 2018

Похоже, вам нужна функция html, обернутая lazy и возвращающая Lazy<T>:

fun html(builder: Html.() -> Unit) = lazy { createHtml().builder() }

(я не знаю тип, возвращаемый createHtml, поэтому я предполагаю, что он называется Html.)

Однако я не уверен, что это хороший дизайн, поскольку он теряет семантическое значение lazy и потому, что он действительно служит только для сохранения нескольких символов, но это только мое мнение.

...