Kotlin 数组 - takeLastWhile() 函数



Kotlin 数组 takeLastWhile() 函数用于返回一个列表,其中包含满足指定谓词的数组的最后一个元素。

这里,最后一个元素表示将谓词应用于数组最后一个元素的结果,并存储在一个新列表中。

语法

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

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

参数

此函数接受谓词作为参数。

返回值

此函数返回一个列表,其中包含满足谓词的最后 n 个元素。

示例 1

以下是一个基本示例,演示了如何使用 takeLastWhile() 函数返回一个列表,其中包含大于指定谓词的最后一个元素:

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

   // use takeLastWhile function
   val list = arr.takeLastWhile({it>=5})
   println("list having element greater than 5: "+ list)
}

输出

以上代码生成以下输出:

Array elements: 3, 4, 5, 6
list having element greater than 5: [5, 6]

示例 2

让我们再看一个例子。这里,我们使用takeLastWhile函数返回一个列表,其中包含长度大于 5 的最后一个元素:

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

   // use takeLastWhile function
   val list = arr.takeLastWhile({it.length>5})
   println("last n flower having length greater than 5 is: ")
   println("list:" + list)
}

输出

以下是输出:

Array elements: Lily, Rose, Daisy, Lotus, Sunflower
last n flower having length greater than 5 is: 
list:[Sunflower]

示例 3

以下是另一种情况:让我们看看如果最后一个元素不满足给定的谓词会发生什么:

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.takeLastWhile{it.price>200}

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

输出

如果最后一个元素不满足谓词,则以上代码将生成空列表:

Product and Price List: []
kotlin_arrays.htm
广告