当前位置:  开发笔记 > Android > 正文

在kotlin中使用elvis运算符时如何否定布尔表达式?

如何解决《在kotlin中使用elvis运算符时如何否定布尔表达式?》经验,为你挑选了1个好方法。

我想否定以下表达式:

return SpUtils.loadEMail()?.isEmpty() ?: false

如果我添加一个!在表达之前,就像

return !SpUtils.loadEMail()?.isEmpty() ?: false

IDE(Android Studio)告诉我

在类型为kotlin.Boolean的可空接收器上只允许安全(?.)或非空的断言(!!.)调用?

我怎么否定这种表达方式呢?



1> Ruslan..:

你有可空引用的问题.

 SpUtils.loadEMail()?.isEmpty()

此代码生成Boolean类型的值?这个mean表达式可以返回Booleannull的实例.

我建议使用以下代码来解决您的问题:

return !(SpUtils().loadEMail()?.isEmpty() ?: false);

你尝试否定布尔?而不是布尔,elvis运算符返回!

推荐阅读
爱唱歌的郭少文_
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有