gpt4 book ai didi

kotlin - 如何简化 Kotlin 中的谓词链

转载 作者:行者123 更新时间:2023-12-02 12:23:55 26 4
gpt4 key购买 nike

我有一串谓词从句,像这样

student?.firstName?.equals("John") ?: false &&
student?.lastName?.equals("Smith") ?: false &&
student?.age?.equals(20) ?: false &&
student?.homeAddress?.equals("45 Boot Terrace") ?: false &&
student?.cellPhone?.startsWith("123456") ?: false

我发现代替 && 可以切换到 boolean 谓词 and() ,但总的来说它并没有使代码更简洁。

Kotlin 有没有办法简化这种表达方式?

最佳答案

感谢所有参与的人!这是带有注释的代码的最终版本:

student?.run {
firstName == "John" &&
lastName == "Smith" &&
age == 20 &&
homeAddress == "45 Boot Terrace" &&
cellPhone.orEmpty().startsWith("123456")
} ?: false
  • 作用域函数 run {} 在对象 student
  • 上被调用
  • equals 替换为 == 以比较 boolean 值和 null
  • 作用域函数的返回类型可以为空,因此使用 elvis 运算符 ?: false 。另一种选择是使用 == true ,但这是您的个人喜好
  • 关于kotlin - 如何简化 Kotlin 中的谓词链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58914472/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com