美文网首页
Kotlin笔记(12) — 特殊函数

Kotlin笔记(12) — 特殊函数

作者: 奔跑的佩恩 | 来源:发表于2020-07-31 22:26 被阅读0次

    前言

    上节我们已经讲过了函数默认参数可变参数写法,但是对于函数的数据了类型都要是确定的。那么,当一个函数的参数类型不确定怎么办?或者还有其他情况咋办?
    那么,今天我们就来学习下几种特殊的函数。

    今天涉及内容:

    1. 泛型函数
    2. 内联函数
    3. 尾递归函数

    一. 泛型函数

    在Android开发过程中,我们知道,会涉及到各种数据类型的问题。当初始化一个可知数据类型的时候,我们可以这样:

        //声明指定数据类型的数组
        var mIntArray:Array<Int> = arrayOf()
        var mStringArray:Array<String> = arrayOf()
    

    当数据类型未知的时候,我们用<T>来表示未知数据类型。<T>表示泛型,这里需要注意的是,声明一个数组不能用泛型。但是当方法中的参数类型不确定时,我们却可以用泛型代替,如下:

        //声明全局变量
        var mCount:Int = 0
    
            //点击事件
            btn_test.setOnClickListener {
                mCount = mCount%2
                tv_name.text=when(mCount){
                    0-> showText(1,2,3)
                    else -> showText("a","b","c")
                }
                mCount++
            }
    
        /**泛型可变参数方法**/
        fun <T>showText(vararg infos:T?):String?{
            var result:String? = null
            if(!infos.isNullOrEmpty()){
                infos.forEach {
                    if(result.isNullOrBlank()){
                        result = it.toString()
                    }else{
                        result =  "$result,${it.toString()}"
                    }
                }
                result="最终结果: $result"
            }
            return result
        }
    

    二. 内联函数

    先上一个泛型方法使用的例子:

    相关文章

      网友评论

          本文标题:Kotlin笔记(12) — 特殊函数

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