Kotlin中修械,lamda只有一個參數(shù)時趾牧,可以用默認參數(shù)名稱it代替命名參數(shù)。
所以下面兩種方式的代碼肯污,含義是一樣的:
people.maxBy { p: Person -> p.age }
people.maxBy { it.age }
ComponentActivity的viewModel方法實現(xiàn)中翘单,ViewModelLazy的第二個 、第三個參數(shù)都是lamda:
@MainThread
inline fun <reified VM : ViewModel> ComponentActivity.viewModels(
noinline factoryProducer: (() -> Factory)? = null
): Lazy<VM> {
val factoryPromise = factoryProducer ?: {
defaultViewModelProviderFactory
}
return ViewModelLazy(VM::class, { viewModelStore }, factoryPromise)
}