kotlin 다중 인터페이스 리셋의 실현 방식 (1)

3076 단어 kotlin
할 말이 없어, 제목을 보면 알 수 있어.코드가 비교적 감겨서 천천히 보아라...코드를 설명하려고 했는데 지난 게시물의 영향을 많이 받았나 봐요. 무슨 말인지 모르겠어요... 모르는 댓글이 있으시죠... 코드를 복사해서 컴퓨터에 실행해 보세요. 효과부터 보세요.
package com.example.kotlinapplication

import org.junit.Test

/**            */

typealias Fun1 = (String) -> Unit
typealias Fun2 = (String,String) -> Unit
typealias Fun3 = (Fun1)->Unit
typealias Fun4 = (Fun2)->Unit
typealias CallBack = (Fun3,Fun4) -> Unit

class MultiCallBack{
    lateinit var newCall:CallBack

    //           
    fun callBack(call: CallBack){
        newCall = call
        println("callBack  ")
    }

    var mFun:Fun1? = null
    //     
    fun setCallBack(){
        println("setCallBack  ")
        val fun1:Fun3 = {
            mFun = it
        }
        val fun2:Fun4 = {
            it("2","3")
        }
        newCall(fun1,fun2)

    }

    //     
    fun setCallBack2(){
        println("  setCallBack2")
        mFun?.invoke("    ")
    }

    //    
    @Test
    fun callBackTestMain(){
        callBack{ fun0,fun1 ->
            fun0{
                println("fun0     :$it")
            }
            fun1{ value1,value2 ->
                println("fun1     :value1-->${value1} value2---->${value2}")
            }
        }
        setCallBack()
        setCallBack2()
    }
}

**    :**

callBack  
setCallBack  
fun1     :value1-->2 value2---->3
  setCallBack2
fun0     :    

좋은 웹페이지 즐겨찾기