我有一串谓词从句,像这样
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
值 ?: false
。另一种选择是使用 == true
,但这是您的个人喜好 关于kotlin - 如何简化 Kotlin 中的谓词链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58914472/