Kotlin 陣列 - takeWhile() 函式



Kotlin 陣列的 takeWhile() 函式用於返回一個列表,該列表包含陣列中滿足指定謂詞的第一個元素。

這裡,第一個元素表示將謂詞應用於陣列的第一個元素的結果,並存儲在一個新列表中。

語法

以下是 Kotlin 陣列 takeWhile() 函式的語法:

inline fun <T> Array<out T>.takeWhile(
   predicate: (T) -> Boolean
): List<T>

引數

此函式接受 **謂詞** 作為引數。

返回值

此函式返回一個列表,其中包含滿足謂詞的第一個 n 個元素。

示例 1

以下是一個基本示例,用於演示如何使用 takeWhile() 函式返回一個列表,該列表包含小於指定謂詞的第一個元素:

fun main(args: Array<String>){
   var arr = arrayOf(3, 4, 5, 6)
   print("Array elements: ")
   println(arr.joinToString())

   // use takeWhile function
   val list = arr.takeWhile({it<4})
   println("list: "+ list)
}

輸出

上述程式碼生成以下輸出:

Array elements: 1, 2, 3, 4, 5
List: [1, 2, 3]

示例 2

讓我們看另一個例子。在這裡,我們使用 **takeWhile** 函式返回一個列表,該列表包含長度小於 5 的第一個元素:

fun main(args: Array<String>){
   var arr = arrayOf<String>("Lily", "Rose", "Daisy", "Lotus", "Sunflower")
   print("Array elements: ")
   println(arr.joinToString())

   // use takeWhile function
   val list = arr.takeWhile({it.length<5})
   println("first n flower having length less than 5: ")
   println("list:" + list)
}

輸出

以下是輸出:

Array elements: Lily, Rose, Daisy, Lotus, Sunflower
first n flower having length less than 5: 
list:[Lily, Rose]

示例 3

讓我們看下面的例子,我們有一個 Product 物件陣列,我們想使用 takeWhile() 函式顯示產品價格超過 100 的前 n 個元素:

data class Product(val name: String, val price: Double)
fun main(args: Array<String>) {
   val products = arrayOf(
      Product("Laptop", 999.99),
      Product("Mouse", 19.99),
      Product("Keyboard", 49.99),
      Product("Monitor", 199.99)
   )
   // use takeLast function
   val list = products.takeWhile{it.price>100}

   // Display the result
   println("Product and Price List: $list")
}

輸出

上述程式碼產生以下輸出:

Product and Price List: [Product(name=Laptop, price=999.99)]
kotlin_arrays.htm
廣告
© . All rights reserved.