美文网首页
每天学一点 Kotlin -- 函数:类型层级

每天学一点 Kotlin -- 函数:类型层级

作者: 冯可乐同学 | 来源:发表于2021-11-01 18:49 被阅读0次

----《第一季Kotlin崛起:次世代Android开发 》学习笔记

总目录:每天学一点 Kotlin ---- 目录
上一篇:每天学一点 Kotlin -- 函数:泛型函数
下一篇:每天学一点 Kotlin -- Lambda 表达式

1. Any

1.1 Kotlin 中最上层的类型是 Any,意思为任意类型,这个和Java中的Object类型相似。

1.2 Any 类型定义了一些普遍的方法:toString, hashCode 以及 equals 方法。同样定义了扩张方法,如 apply,let 和 to 等等。

2. Unit

2.1 Unit 类型等价于 Java 中的 void。

2.2 在函数中有一个 Unit 类型是很常见的,void 和 Unit 之间的区别很微妙。void 不是一个类,而是一个特殊的个例(我认为就是一个标记),用于知识编译器一个函数没有返回值。Unit 是一个合适的类型,用于实现一个单例。

2.3 当一个函数定义返回一个 Unit 时,返回一个 Unit 的单例。这样的话,即便是返回Unit类型,没有参数的函数都可以被定义成接受Unit类型。

3. Nothing

3.1 Kotlin 另外一个与 Java 有显著区别的是,Kotlin 中增加了一个最顶层的类型:Nothing。

3.2 Nothing 这个类型没有实例。与 Any 类型是所有类的父类相对,Nothing 是所有类的子类。

3.3 乍一看所有类型都有一个子类有点奇怪,但是有它的用处。
(1) Nothing 可以用于通知编译器一个函数永远不会正常完成。例如:死循环、总是抛出异常。
(2) 一个 Nothing 的空列表可以被赋值给一个除了是字符串列表的引用,因为这个列表已经定义成不可变的,所以往这样的一个列表里面添加一个字符串是没有危险的。因此,这些空值可以被缓存和重用。这种做法实际上系统标准库中的 emptyList()、emptySet() 等函数相似空集合的实现。

相关代码:https://gitee.com/fzq.com/test-demo

相关文章

网友评论

      本文标题:每天学一点 Kotlin -- 函数:类型层级

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