我试图在List<T>中找到一个尾部函数,但我找不到.最后我做了这个.

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

有更好的方法吗?

推荐答案

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

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

Or, instead of extension function, you can define an extension property:

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

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

And then use it like:

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

Kotlin相关问答推荐

Ktor错误:未指定端口或sslPort

Kotlin—从列表中枚举属性计算不同值的数量

Jetpack Compose中的数字 Select 器问题

如何编写带有依赖项的自定义Kotlin串行化程序?

使用另一个对象的列表创建对象

Kotlin:类型不匹配:推断的类型已运行,但应等待

如何检测一个值是否是Kotlin中的枚举实例?

如何让 LocalDateTime.parse 拒绝 24:00 时间

在 Kotlin 中,为什么我们要在闭包中捕获值

如何使用 Mockk 模拟返回值类的 Kotlin 函数类型?

如何缩短 MaterialTheme.colors.primary?

为什么 Kotlin 中的 Double 和 Long 类型不推荐直接转换为 Char?

为什么在 Kotlin 中调用私有构造函数会导致错误为无法访问 是什么?

Kotlin 插件之间的区别

使用 LazyListScope 嵌套可组合项

如何从 kotlin 函数中 Select 正确的枚举值

什么是 .kotlin_builtins 文件,我可以从我的 uberjars 中省略它们吗?

为什么 Dialog 没有 NavController [Missing]?

uses-sdk:minSdkVersion 16 不能小于库中声明的版本 23

kotlin中的全局可拓函数