Kotlin 数组 - single() 函数



Kotlin 数组 single() 函数用于检查数组中是否只有一个元素。如果数组为空或包含多个元素,则会返回错误。

此函数还可以接受一个谓词,并返回与该谓词匹配的单个元素。否则,如果不存在或存在多个匹配元素,则会抛出异常。

异常

以下是异常:

  • IllegalArgumentException - 如果数组包含多个元素。

  • NoSuchElementException - 如果数组为空。

语法

以下是 Kotlin 数组 single() 函数的语法:

fun <T> Array<out T>.single(
   predicate: (T) -> Boolean
): T

参数

此函数接受一个谓词,表示布尔值,如果条件满足则为 true,否则为 false。

返回值

此函数返回一个元素。否则,返回一个异常。

示例 1

以下是一个基本示例,用于演示 single() 函数的使用:

fun main(args: Array<String>) {
   val numbers = arrayOf<Any>(1)   
   // use single
   val single = numbers.single()
   println(single)
}

输出

以上代码生成的输出:

1

示例 2

现在,让我们来看另一个示例,我们使用 single() 函数和谓词来返回与谓词匹配的单个元素:

fun main(args: Array<String>) {
   val numbers = arrayOf(1, 2, 3, 4, 5)
   try {
      val single = numbers.single { it % 3 == 0 }
      println("Array has a single element: $single")
   } catch (e: NoSuchElementException) {
      println("Array is empty.")
   } catch (e: IllegalArgumentException) {
      println("Array contains more than one element that matches the predicate.")
   }
}

输出

以下是输出:

Array has a single element: 3

示例 3

以下示例检查字符串数组中是否恰好包含一个长度为 4 的元素:

fun main(args: Array<String>) {
   val numbers = arrayOf<String>("tutorialspoint", "Hyderabad", "India")
   try {
      val single = numbers.single { it.length > 4 }
      println("Array has a single element: $single")
   } catch (e: NoSuchElementException) {
      println("Array is empty.")
   } catch (e: IllegalArgumentException) {
      println("Array contains more than one element that matches the predicate.")
   }
}

输出

以下是输出:

​
Array contains more than one element that matches the predicate.
kotlin_arrays.htm
广告