kotlin T.()

Posted 安果移不动

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了kotlin T.()相关的知识,希望对你有一定的参考价值。

。。闻所未闻?

非也

看apply函数

public inline fun <T> T.apply(block: T.() -> Unit): T 
    contract 
        callsInPlace(block, InvocationKind.EXACTLY_ONCE)
    
    block()
    return this

他的方法参数就是 block:T.()->Unit

那么。什么意思呢

首先我们先看下普通的扩展函数

infix fun String?.printWithDefault(default: String) = print(this ?: default);

类型为String?很好理解

难点 泛型扩展函数

fun <T> T.easyPrint(): T 
    println(this)
    return this

欸 你会发现

T.easyPrint() 里面可以用this 。this指的是T

那么 apply函数里面大家都知道

fun main() 
    1.apply
        println(this)
    

 也是this对象。那么就懂了吧

这个函数必须是一个可以返回本身的方法体。。。。听着有些绕。但是我就是这么理解的。

与50位技术专家面对面 20年技术见证,附赠技术全景图

以上是关于kotlin T.()的主要内容,如果未能解决你的问题,请参考以下文章

Kotlin扩展函数T.()作为参数的理解

Kotlin中,理解T.()->Unit 、 ()->Unit与(T) -> Unit

Kotlin、Proguard 和 lambdas

Kotlin 标准库随处可见的 contract 到底是什么?

Kotlin标准库函数 ① ( apply 标准库函数 | let 标准库函数 )

Kotlin 内联函数let,with,run,apply,also区别和用法