重构以获得最佳 Kotlin

Cry*_*ode 0 kotlin

我有这段验证代码,并且认为它不符合 Kotlin 的精神,

在这段代码中,我与数据类内容网络人员进行了比较:网络人员工作人员:网络人员

    if (networker.name != worker.name && networker.name != null) {
        worker.name = networker.name
    }
    if (networker.lastName != worker.lastName && networker.lastName != null) {
        worker.lastName = networker.lastName
    }
    if (networker.phone != worker.phone && networker.phone != null) {
        worker.phone = networker.phone
    }
    if (networker.email != worker.email && networker.email != null) {
        worker.email = networker.email
    }
Run Code Online (Sandbox Code Playgroud)

请问如何用更好更优雅的 Kotlin 代码来改进这个

Leo*_*Aso 8

如果优雅是你在这里的主要关注点,那么你可以这样写。

worker.name = networker.name ?: worker.name
worker.lastName = networker.lastName ?: worker.lastName
worker.phone = networker.phone ?: worker.phone
worker.email = networker.email ?: worker.email
Run Code Online (Sandbox Code Playgroud)

这实现了与您的代码相同的结果(将值从 networker 复制到 worker,除了空值),但我认为它看起来更好。