Kotlin 列表尾函数

标签 kotlin kotlin-extension

我试图在 List<T> 中找到一个尾函数但我找不到。我最终这样做了。

fun <T> List<T>.tail() = this.takeLast(this.size -1)

有没有更好的方法来做到这一点?

最佳答案

Kotlin 没有内置的 List<T>.tail()函数,所以实现自己的扩展函数是唯一的方法。尽管您的实现非常好,但可以稍微简化一下:

fun <T> List<T>.tail() = drop(1)

或者,您可以定义扩展属性,而不是扩展函数:

val <T> List<T>.tail: List<T>
  get() = drop(1)

val <T> List<T>.head: T
  get() = first()

然后像这样使用它:

val list = listOf("1", "2", "3")
val head = list.head
val tail = list.tail

关于Kotlin 列表尾函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35808022/

相关文章:

android - 用于 View 的 Kotlin 合成扩展

kotlin - 如何扩展 Kotlin Number 类或使用泛型创建一个简单的属性 getter,它将对所有 Number 子类进行操作?

android - Kotlin 函数需要 Nothing but defined as a different type

android - 在下拉模式下单击展开时微调器崩溃但在对话框模式下工作(仅在 API < 26 中)

android - ViewModel 将 ArrayList 大小返回为零

android - 获取 native 库的 native 地址时出错 : task_vision_jni_gms

android - 如何在 Kotlin 中创建具体化类型的对象

kotlin - 我可以将 Kotlin 文件生成的类的默认构造函数设为私有(private)吗?

java - Kotlin - 调用 getter 时未加载 HibernateProxy

kotlin - 如何在 Kotlin 中向 Java 类添加静态方法