lamda in Kotlin

Kotlin中,lamda只有一个参数时,可以用默认参数名称it代替命名参数。
所以下面两种方式的代码,含义是一样的:

people.maxBy { p: Person -> p.age }
people.maxBy { it.age }

ComponentActivity的viewModel方法实现中,ViewModelLazy的第二个 、第三个参数都是lamda:

@MainThread
inline fun  ComponentActivity.viewModels(
    noinline factoryProducer: (() -> Factory)? = null
): Lazy {
    val factoryPromise = factoryProducer ?: {
        defaultViewModelProviderFactory
    }

    return ViewModelLazy(VM::class, { viewModelStore }, factoryPromise)
}

你可能感兴趣的:(lamda in Kotlin)