28、Scala 类型系统与 Predef 对象深入解析

Scala 类型系统与 Predef 对象深入解析

1. Scala 类型基础

Scala 2.10 引入了用户自定义的值类,这些类扩展自 AnyVal 。除了值类,其他类型都是引用类型,它们派生自 AnyRef AnyRef 类似于 Java 中的 java.lang.Object 。在 Java 的对象模型中,没有一个能同时封装基本类型和引用类型的父类型,因为基本类型有特殊处理方式。在 Scala 2.10 之前,编译器会将一个名为 ScalaObject 的“标记”特质混入所有 Scala 引用类型的实例中,但从 Scala 2.11 开始,这种做法被取消,该特质也被移除。

2. 特殊类型:Nothing 和 Null
2.1 类型概述

Nothing Null 是类型系统底层的两个特殊类型。 Nothing 是所有其他类型的子类型,而 Null 是所有引用类型的子类型。

Null 在大多数编程语言中是一个熟悉的概念,但通常它们不会定义 Null 类型,只是有一个 null 关键字,用于“赋值”给引用,表示该引用实际上没有赋值。在编译器中, Null 的实现就好像有以下声明:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值