美文网首页
2021-11-30(Kotlin学习笔记)高阶函数

2021-11-30(Kotlin学习笔记)高阶函数

作者: 简单快乐6 | 来源:发表于2021-12-02 15:37 被阅读0次

    个人笔记

    val name: String = "bsm"
    val age: Int = 0
    
    
    fun commont(){
        println("我是方法")
    }
    
    fun main() {
        commont().myRun {
            println("AAAAA")
        }
    
        onRun(true){
            println("打印")
        }
    
        onRun(true,{
            println("打印11")
        })
    
        val runValue = Runnable {
            println("打印2222")
        }
        // :: 取出函数
        onRun(true,runValue::run)
    
    }
    
    //给所有类型增加扩展函数
    //T --> 范型 R --> 返回类型范型
    //T.() == 给T加一个匿名函数
    fun <T,R> T.myRun(m: T.() -> R) : R{
        return m()
    }
    
    fun <T,R> T.myRun1(m: () -> R) : R = m()
    
    
    fun <T,R> myWith(input: T, mm: T.() -> R) : R{
        return input.mm() //this
    }
    
    fun <T, R> T.myLet(mm: T.(T) -> R) : R{
        // T == this    ()  -> R
        // mm(this) == this      vs    T.(T)    -> R
        return mm(this)
    }
    //inline 减少无用代码, 代码更少
    //控制器 如果是true, 执行
    inline fun onRun(isRun: Boolean, mm:() -> Unit){
        if(isRun) mm()
    }
    

    相关文章

      网友评论

          本文标题:2021-11-30(Kotlin学习笔记)高阶函数

          本文链接:https://www.haomeiwen.com/subject/tjnyxrtx.html