在 Kotlin 中,.apply
?是一個?作用域函數(Scope Function),它允許你在一個對象的上下文中執行代碼塊,并返回該對象本身。它的設計目的是為了?對象初始化?或?鏈式調用?時保持代碼的簡潔性和可讀性。
// 不使用 apply
val textView = TextView(context)
textView.text = "Hello"
textView.textSize = 16f
textView.setTextColor(Color.RED)// 使用 apply(更簡潔)
val textView = TextView(context).apply {text = "Hello" // 等價于 this.text = "Hello"textSize = 16fsetTextColor(Color.RED)
}
在 Kotlin 中,.also
?是一個?作用域函數(Scope Function),它允許你在不改變對象本身的情況下,對其執行額外的操作(如日志記錄、驗證等)。注意,.also
?通過?it
?引用對象,并最終返回對象本身。
//與apply配合聯用
val user = User().apply {name = "Alice"age = 25
}.also {println("User created: $it")
}
//與takeif或takeunless配合聯用
val validUser = user.also { println("原始用戶: $it") }.takeIf { it.age >= 18 } // 僅保留成年人?.also { println("有效用戶: $it") }
?