如何改进惰性委托?

How to improve lazy delegate?

我如何改进此声明:

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

就像我自己的委托生成器一样html:

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

您似乎想要一个函数 html,包装 lazy 并返回一个 Lazy<T>:

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

(我不知道 createHtml 返回的类型,所以我假设它叫做 Html。)

不过,我不确定这是不是好的设计,因为它失去了 lazy 的语义价值,而且它实际上只用于保存几个字符,但这只是我的看法。