Android Kotlin 將函式作為引數傳遞
Kotlin支援函式作為引數傳遞,無需構建物件來包裝函式。
1、呼叫一個無返回的函式作為引數傳遞為:方法名()-> Unit
class MainActivity : AppCompatActivity() {
private val TAG:String = "MainActivity.kt"
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
getResults { logDebug("Hello World" ) } //在kotlin中如果傳入的引數是函式,可以省略括號
}
fun logDebug(msg:String) {
Log.d(TAG,msg)
}
/**
* 在 Kotlin 中無返回為 Unit
*
* 此方法接收一個無引數的函式並且無返回
*/
private fun getResults(method: () -> Unit) {
method()
}
}
2、呼叫一個有返回引數的函式作為引數傳遞為:方法名()-> 返回型別
/**
* @param str1 引數1
* @param str2 引數2
*/
fun getResult(str1: String, str2: String): String = "result is {$str1 , $str2}"
/**
* 此方法接收一個返回String型別的方法
*/
private fun logDebug(method: () -> String) {
Log.d(TAG,method())
}
本篇文章就到這裡了,有不足的還望指導,感謝各位^_^