kotlin支持方法函数的编写,在开发时起到了非常方便的作用,它有点类似于java的Runnable接口,但有有些不同,使用方法函数如:
fun test(method: (() -> Unit)?) {
Log.d(TAG, "test: 1")
method?.invoke()
Log.d(TAG, "test: 3")
}
test {
Log.d(TAG, "onCreate: 2")
}
有时候一些带有返回值的方法函数,如带有Boolean返回值的方法函数,比如setOnTouchListener方法:
view.setOnTouchListener { v, event ->
true
}
如果想要在中间设置了某些条件想要提前退出怎么做?
view.setOnTouchListener { v, event ->
val k = 3
if (k < 3) {
return true
}
if (k >3) {
return false
} else {
return true
}
true
}
这样行不行?但是IDE提示不合法:
这时候只要在大括号前加个任意字段,然后加@就行啦!
view.setOnTouchListener suibianyigezifu@{ v, event ->
val k = 3
if (k < 3) {
return@suibianyigezifu true
}
if (k >3) {
return@suibianyigezifu false
} else {
return@suibianyigezifu true
}
true
}
这样一个带返回值的方法函数就能提前退出代码块了!