本地委派属性
你可以定义一个本地变量作为委派属性。例如,你可以将一个本地懒加载变量。
fun example(computeFoo: () -> Foo) {
val memoizedFoo by lazy(computeFoo)
if (someCondition && memoizedFoo.isValid()) {
memoizedFoo.doSomething()
}
}
memoizedFoo变量将在第一次访问的时候进行计算。如果someCondition是false的,那么memoizedFoo将不会进行计算。