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")
三種的調(diào)用方式是同一個意思
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 {
}
}
}