Kotlin:Any、Nothing、Unit 类型

本文介绍了Kotlin中的Any作为所有类的根类,提供基本操作方法;Nothing表示不存在的值,函数返回Nothing则表示总是抛出异常;Unit类型对应Java的void,无返回值的函数默认为Unit。
摘要由CSDN通过智能技术生成

Any 类型

Any 是 Kotlin 类层次结构的根。每个 Kotlin 类都将 Any 作为其父类。这意味着 Any 是你在 Kotlin 中定义的任何类的父类,它与 Java 中的 Object 完全等效。

下面是 Any 类的定义:

public open class Any {
    /** 
     * 判断某个对象是否与当前对象相等。
     */
    public open operator fun equals(other: Any?): Boolean

    /** 
     * 返回对象的哈希码值。hashCode 的一般约定是:
     * 
     */
    public open fun hashCode(): Int

    /** 
     * 返回对象的字符串表示。
     */
    public open fun toString(): String
}

在上面的示例中,可以看到 Any 类提供了 equals、hashCode 和 toString 方法。这些方法可以在任何 Kotlin 类中使用,因为每个类都是 Any 类的子类。

Nothing 类型

在 Kotlin 中,可以使用 Nothing 类型表示“永远不存在的值”。例如,如果一个函数的返回类型为 Nothing,那么它意味着该函数永远不会返回(总是抛出异常)。

下面是 Nothing 类型的定义:

public class Nothing private constructor() {
    // Nothing 类没有实例
}

上面的定义意味着你无法实例化这个类,也意味着没有其他类可以继承它。

以下是一个使用 Nothing 的函数示例,该函数总是抛出异常,永远不会返回任何值:

fun error(message: Any): Nothing {   
    throw IllegalStateException(message.toString())
}

上述函数始终抛出异常,不会返回任何值。需要注意的是,必须明确指定 Nothing 作为返回类型,否则返回类型仍然是 Unit。

Unit 类型

Unit 类型是只有一个值的类型,即 Unit 对象。这个类型对应于 Java 中的 void 类型。

以下是 Unit 类型的定义:

public object Unit {
    override fun toString() = "kotlin.Unit"
}

在 Kotlin 中,如果你没有显式指定函数的返回类型,那么函数的默认返回类型是 Unit。这意味着如果函数的返回类型没有显式指定,Kotlin 编译器将使用 Unit 作为返回类型。

下面的示例展示了两个行为相似的函数:

fun display() {
    print("kotlin")
}

fun display(): Unit {
    print("kotlin")
}

在上面的示例中,这两个函数的行为是相似的。如果没有指定返回类型,Kotlin 编译器会将其默认设置为 Unit。

转自:Kotlin:Any、Nothing、Unit 类型

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值