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
廣告