kotlin Lambda + 扩展函数

var method: String.(String, String) -> Unit = {str1, str2 -> print("$this $str1 $str2")}
method.invoke("1", "2", "3")
method("1", "2", "3")
"1".method("2", "3")

三种的调用方式是同一个意思

var method1: Int.(String) -> String = { if(this == 1) "男" else if(this == 0) "女" else it}
1.method1("未知")
0.method1("未知")
method1(1, "未知")
22.method1("未知")
fun <T> T.runOk(c: T.() -> Boolean) {
        c()
    }
"123".runOk {
     print("this: $this")
     true
}
class Layout {
        fun button(b: () -> Unit) {

        }

        fun text(t: () -> Unit) {

        }
    }

    fun layout(v: Layout.() -> Unit) {

    }

    fun main() {
        layout {
            button {

            }

            text {

            }
        }
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。