美文网首页
kotlin匿名函数

kotlin匿名函数

作者: Bfmall | 来源:发表于2022-10-31 19:39 被阅读0次

    匿名函数学习笔记###

    
    /**
     * DESC   : kotlin中的匿名函数
     */
    class KtBaseFunTest02 {
    
        companion object {
            const val TAG = "KtBaseFunTest02"
        }
    
        /**
         * 隐式函数
         */
        fun testNestFun01() {
            val length1 = "lanny".count()
            val length2 = "lanny".count {
                Log.d(TAG, "it="+it)//此时,it相当于 l a n n y 中的每一个字符
                it == 'y'
            }
            Log.d(TAG, "测试匿名函数:length1="+length1+", length2="+length2)
        }
    
        /**
         * 函数类型&隐式返回学习
         */
        fun testNestFun02() {
            //第一步:函数输入输出的声明
            /**
             * 函数变量      函数名      参数(无参)      返回值
             * val      methodAction    :    ()        ->   String
             */
            val methodAction : () -> String
    
            //第二步:对上面函数的实现
            methodAction = {
                val age  = 1
                "年龄age=${age}" // == 背后隐式 return "年龄age=${age}";
                //隐式函数不需要写return, 最后一行就是返回值,
            }
            //methodAction是方法名,调用方法methodAction()
            Log.d(TAG, "testNestFun02==>methodAction="+methodAction())
        }
    
        /**
         * 隐式函数参数学习
         */
        fun testNestFun03() {
            /**
             * 第一步:函数的输入输出的声明
             * 第二步:对声明函数的实现
             */
            val methodAction2 : (String ,Int) -> String = { name, age ->
                "结果name="+name+",age="+age
            }
            //第三步调用methodAction函数并传参
            Log.d(TAG, "testNestFun03==>methodAction=" + methodAction2("elle", 11))
    
            //相当于如下:
            /*fun methodAction2(name:String ,age : Int) : String {
                return "结果name="+name+",age="+age
            }*/
        }
    
        /**
         * kotlin中 it 关键字
         */
        fun testNestFun04() {
            /**
             * 第一步:函数的输入输出的声明
             * 第二步:对声明函数的实现
             */
            val methodAction: (String) -> String = {
                "结果: $it "//it == 参数
            }
            Log.d(TAG, "testNestFun04==>"+methodAction("lananna"))
    
        }
    
        /**
         * 匿名函数的返回值类型判断
         */
        fun testNestFun05() {
            val methodAction = { name:String, age : Int ->
                "结果name="+name+", age="+age
                //最后一行是返回类型
            }
    
            Log.d(TAG, "testNestFun05==>"+methodAction("hahha", 88))
    
            //methodAction2 : () -> Unit
            val methodAction2 = {
                "hahahahha"
            }
            Log.d(TAG, "testNestFun05==>"+methodAction2())
    
            //返回类型为Int
            val methodAction3= { age:Int ->
                age
                //最后一行是返回类型
            }
            Log.d(TAG, "testNestFun05==>"+methodAction3(99))
        }
    
        /**
         * 匿名函数== lambda表达式(匿名函数 属于 lambda)
         */
        fun testNestFun06() {
            val methodAction = { name: String, age: Int ->
                "结果name=" + name + ", age=" + age
                //最后一行是返回类型
            }
    
            Log.d(TAG, "testNestFun05==>" + methodAction("hahha", 88))
        }
    }
    

    相关文章

      网友评论

          本文标题:kotlin匿名函数

          本文链接:https://www.haomeiwen.com/subject/kpwazrtx.html