Avatar ·

run、let、apply、also和with在Kotlin中的使用示例:何时应用?

大家好,同事们!我开始学习Kotlin,但一直搞不清楚扩展函数run、let、apply、also和with。文档说它们有助于编写更简洁的代码,但我总是混淆该选哪一个。 例如,我有一个简单的User类: ```kotlin data class User(var name: String, var age: Int, var email: String) ``` 我想创建一个实例,修改它的字段,然后输出到日志。我尝试了不同的方式: ```kotlin // 方式1 val user = User("", 0, "") user.name = "伊万" user.age = 25 user.email = "ivan@mail.ru" println(user) // 方式2 val user = User("", 0, "").apply { name = "伊万" age = 25 email = "ivan@mail.ru" } println(user) ``` 看起来apply能用,但当需要返回转换结果时,我就困惑了。例如,如果我想在修改后获取名字的长度: ```kotlin val length = User("", 0, "").let { it.name = "伊万" it.name.length } ``` 或者还有这个: