Как улучшить ленивого делегата?
Как я могу улучшить эту декларацию:
val __name: String by lazy {
createHTML().small {
+name
}
}
вроде как мой собственный делегат строитель html
:
val __name: String by html {
small {
+name
}
}
1 ответ
Кажется, вы хотите функцию html
, упаковка lazy
и возвращая Lazy<T>
:
fun html(builder: Html.() -> Unit) = lazy { createHtml().builder() }
(Я не знаю тип, возвращаемый createHtml
так что я предполагаю, что это называется Html
.)
Я не уверен, что это хороший дизайн, так как он теряет смысловую ценность lazy
И потому, что он действительно служит только для сохранения нескольких символов, но это только мое мнение.