iFo*_*sts 20 kotlin kotlin-null-safety
我是Kotlin的新手,我正在寻找建议,以更优雅的方式重写以下代码.
var s: String? = "abc"
if (s != null && s.isNotEmpty()) {
// Do something
}
Run Code Online (Sandbox Code Playgroud)
如果我使用以下代码:
if (s?.isNotEmpty()) {
Run Code Online (Sandbox Code Playgroud)
编译器会抱怨
Required: Boolean
Found: Boolean?
Run Code Online (Sandbox Code Playgroud)
谢谢.
mie*_*sol 29
你可以这样使用isNullOrEmpty或者它的朋友isNullOrBlank:
if(!s.isNullOrEmpty()){
// s is not empty
}
Run Code Online (Sandbox Code Playgroud)
双方isNullOrEmpty并isNullOrBlank都在扩展方法CharSequence?从而可以用放心使用null.或者null像这样变成假:
if(s?.isNotEmpty() ?: false){
// s is not empty
}
Run Code Online (Sandbox Code Playgroud)
你也可以做以下事情
if(s?.isNotEmpty() == true){
// s is not empty
}
Run Code Online (Sandbox Code Playgroud)
虽然我非常喜欢 @miensol 的答案,但我的答案是(这就是为什么我不把它放在评论中):if (s != null && s.isNotEmpty()) { \xe2\x80\xa6 }实际上是Kotlin 中的惯用方式。只有这样,您才能String在块内获得智能转换,而使用接受的答案中的方式,您将必须s!!在块内使用。
| 归档时间: |
|
| 查看次数: |
6157 次 |
| 最近记录: |