Kotlin中Any, Unit和Nothing的区别

Any

Any 类有3个方法

public open class Any {
   public open operator fun equals(other: Any?): Boolean
   public open fun hashCode(): Int
   public open fun toString(): String
}

这个类就是Kotlin的基类, 任何类的顶级父类都是Any。  就相当于Java的Object那个类。

Unit

Unit类 是一个object类, 意味着它只有一个实例对象。

Unit is Any

Unit类也是一个Any类型的类,

Unit类完全等同于Java中的void类型。

当函数无返回值时,我们可以显式添加Unit作为函数的返回值

fun doSomething() {
    //do something here
}

fun doSomething() : Unit {
    //do something here
}

 

Nothing

public class Nothing private constructor()

Nothing代表一个从未使用过的值

常被作为一个每次只抛出异常的函数的返回值

fun iWillAlwaysThrowException() : Nothing =  throw Exception("Unnecessary Exception")

这个Nothing返回值不能省略

 

Nothing最好的例子 是TODO函数

@kotlin.internal.InlineOnly
public inline fun TODO(): Nothing = throw NotImplementedError()

 

posted @   huyang011  阅读(855)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示