Kotlin语言的匿名函数与具名函数调用

47 阅读1分钟

一、Kotlin 的匿名函数调用与具名函数调用

fun main(){
    //匿名函数调用
    showPersonInfo("lilei",18,"男"){
        println("$it")
    }
    //具名函数调用
    showPersonInfo("lilei",18,"男",::showResult)
}

fun showResult(str:String):Unit{
    println("$str")
}

fun showPersonInfo(name:String,age:Int,sex:String,showResult:(String) -> Unit){
    var str = "姓名:$name,性别:$sex,年龄:$age"
    showResult(str)
}

###二、Java的匿名函数调用与具名函数调用

interface InterfaceResult{
    public void showResult(String str);
}

 class InterfaceResultIpm implements InterfaceResult{
    @Override
    public void showResult(String str) {
        System.out.println(str);
    }
}

public class KtBase19 {
    public static void main(String[] args) {
        //匿名方法调用
        KtBase19 ktBase19 = new KtBase19();
        ktBase19.showPersonInfor("Lilei",18,"男",new InterfaceResult() {
            @Override
            public void showResult(String str) {
                System.out.println(str);
            }
        });
        //具名函数调用
        InterfaceResultIpm ipm = new InterfaceResultIpm();
        ktBase19.showPersonInfor("Lilei",18,"男",ipm);

    }



    public  void showPersonInfor(String name,int age,String sex,InterfaceResult interfaceResult){
        String info = "姓名:"+ name +"性别:"+sex+ "年龄:"+age;
        interfaceResult.showResult(info);
    }
}

通过对比,Kotln匿名函数与具名函数调用相对更加简洁