Kotin:接口回调中 Lambda 表达式让代码更简洁

此文章发布于 36 个月前,部分信息可能已经过时,请自行斟酌确认。

基础知识:接口回调中Lambda使用

在 Kotlin 中可使用 Lambda 函数简化一些不必要的嵌套接口回调方法

注:仅支持单个抽象方法回调,多个回调方法不支持。

// Java接口回调
mVar.setEventListener(new ExamEventListener(){
 
    public void onSuccess(Data data){
      // ...
    }
 
 });

// 同等效果的Kotlin接口回调(无使用lambda表达式)
mVar.setEventListener(object: ExamEventListener{
     
    public void onSuccess(Data data){
      // ...
    } 
});

// Kotlin接口回调(使用lambda表达式,仅留下参数)
mVar.setEventListener({
   data: Data ->
   // ... 
})

// 继续简化
// 简化1:借助kotlin的智能类型推导,忽略数据类型
mVar.setEventListener({
   data ->
   // ... 
})

// 简化2:若参数无使用,可忽略
mVar.setEventListener({
   // ... 
})

// 简化3:若setEventListener函数最后一个参数是一个函数,可把括号的实现提到圆括号外
mVar.setEventListener(){
   // ... 
}

// 简化3:若setEventListener函数只有一个参数 & 无使用到,可省略圆括号
mVar.setEventListener{
   // ... 
}
最后修改:2021 年 12 月 21 日 09 : 00 AM
如果觉得我的文章对你有用,请随意赞赏

发表评论