0
点赞
收藏
分享

微信扫一扫

Kotlin中标准函数let与泛型扩展函数

狗啃月亮_Rachel 2022-02-08 阅读 80
fun main() {
    "yuknight".mLet {
        it
        true
        "Ok"
    }
    123.mLet {
        it
    }

    val str = "str".let {
        it
    }

}

//fun<I, O> 在函数中,声明两个泛型,函数类型,I输入参数,O函数返回值
//I.mLet 对I输入参数进行扩展,扩展函数名称是mLet,意味着所有的类型都可以调用此函数
//lambda:(I)->O  (I输入参数)->O返回值
//:O  函数的返回值会根据用户的返回类型变化而变化
//lambda(this)  I进行函数扩展,在整个扩展函数里面,this == I 自身
private inline fun <I, O> I.mLet(lambda: (I) -> O) = lambda(this)
/**
 * private inline fun <I, O> I.mLet(lambda: (I) -> O): O {
 *        lambda(this)
 * }
 */
//let 函数源码
/**
 * public inline fun <T, R> T.let(block: (T) -> R): R {
 *     return block(this)
 *  }
 */
举报

相关推荐

kotlin扩展函数

0 条评论