kotlin基础类型——类型别名

作者: 程序员丶星霖 | 来源:发表于2019-06-18 16:21 被阅读4次

    Kotlin可以为已有的类型指定另一个可读性更强的名字。使用typealias来定义类型别名。其语法格式如下:

    typealias  类型别名  =  已有类型
    

    如果类型名太长,可以使用较短的新名称替代原类型名。

    typealias FileTable<K> = MutableMap<K, MutableList<File>>
    fun main(args: Array<String>) {
        var table:FileTable<String>
    }
    

    也可以通过定义别名为内部类起一个更短的名字。

    class A {
        inner class Inner
    }
    
    class B {
        inner class Inner
    }
    //为A.Inner指定别名
    typealias AInner = A.Inner
    //为B.Inner指定别名
    typealias BInner = B.Inner
    
    fun main(args: Array<String>) {
        var a: AInner = A().AInner()
        var b = B().BInner()
    }
    

    Kotlin与Java的Lambda表达式的差别:

    Java的Lambda表达式的类型是函数式接口,而Kotlin的Lambda表达式的类型直接就是函数类型,所以Kotlin也允许为Lambda表达式的类型指定别名。

    typealias Predicate<T> = (T) -> Boolean
    
    fun main(args: Array<String>) {
        val p: Predicate<String> = {
            it.length > 4
        }
        //为filter()方法传入p参数,只保留长度大于4的字符串
        println(arrayOf("Java", "Objective-C", "Go", "Kotlin").filter(p))
    }
    

    输出结果:

    [Objective-C, Kotlin]
    

    学海无涯苦作舟

    我的微信公众号.jpg

    相关文章

      网友评论

        本文标题:kotlin基础类型——类型别名

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