原文内容来自 Kotlin - Property initialization using “by lazy” vs. “lateinit” lazy { ... } delegate can only be used for val properties, whereas lateinit can only be applied to vars, because it can't be compiled to a final field, thus no immutability can be guaranteed; lazy { ... }只能被用在被val修饰的变量...