Android开发Android进阶Android技术知识

kotlin基础类型——类型别名

2019-06-18  本文已影响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
上一篇下一篇

猜你喜欢

热点阅读