Kotlin作用域函数

在 Kotlin 中,.apply 是一个 作用域函数 (Scope Function),它允许你在一个对象的上下文中执行代码块,并返回该对象本身。它的设计目的是为了 对象初始化链式调用 时保持代码的简洁性和可读性。

Kotlin 复制代码
// 不使用 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 = 16f
    setTextColor(Color.RED)
}

在 Kotlin 中,.also 是一个 作用域函数 (Scope Function),它允许你在不改变对象本身的情况下,对其执行额外的操作(如日志记录、验证等)。注意,.also 通过 it 引用对象,并最终返回对象本身。

Kotlin 复制代码
//与apply配合联用
val user = User().apply {
    name = "Alice"
    age = 25
}.also {
    println("User created: $it")
}
Kotlin 复制代码
//与takeif或takeunless配合联用
val validUser = user.also { println("原始用户: $it") }
    .takeIf { it.age >= 18 }  // 仅保留成年人
    ?.also { println("有效用户: $it") }
相关推荐
前端码虫9 分钟前
JS分支和循环
开发语言·前端·javascript
GISer_Jing11 分钟前
MonitorSDK_性能监控(从Web Vital性能指标、PerformanceObserver API和具体代码实现)
开发语言·前端·javascript
岸边的风18 分钟前
JavaScript篇:JS事件冒泡:别让点击事件‘传染’!
开发语言·前端·javascript
bubiyoushang8882 小时前
matlab雷达定位仿真
开发语言·matlab
yezipi耶不耶3 小时前
Rust入门之并发编程基础(一)
开发语言·后端·rust
南瓜胖胖4 小时前
【R语言编程绘图-plotly】
开发语言·plotly·r语言
@Turbo@4 小时前
【QT】在QT6中读取文件的方法
开发语言·数据库·qt
_extraordinary_4 小时前
Java 异常
java·开发语言
moz与京5 小时前
【数据结构】字符串操作整理(C++)
开发语言·数据结构·c++
招财进宝。。5 小时前
c# 获取电脑 分辨率 及 DPI 设置
开发语言·c#·电脑