检查集合是否只有一个元素的好方法

nut*_*ter 2 kotlin

有没有办法检查我的集合是否只有一个元素?

if (myCollection.size == 1){

}
Run Code Online (Sandbox Code Playgroud)

就像是

if (myCollection.isSingle()){

}
Run Code Online (Sandbox Code Playgroud)

UPD:我喜欢isSingle()提议的答案中的命名。

谢谢

Die*_*rin 6

Kotlin 已经为此提供了两种方法:

fun <T> Iterable<T>.single(): T
Run Code Online (Sandbox Code Playgroud)

返回单个元素,如果集合为空或有多个元素,则抛出异常。

fun <T> Iterable<T>.singleOrNull(): T?
Run Code Online (Sandbox Code Playgroud)

返回单个元素,如果集合为空或有多个元素,则返回 null。

使用第二个选项,您可以替换if为该let功能

listOf(1).singleOrNull()?.let { print(it) }
Run Code Online (Sandbox Code Playgroud)