scala中None Null Nothing 和 Nil的区别

本文探讨Scala中的特殊类型None、Null、Nothing和Nil。None作为一个Option的子类,通常用于表示可能为空的方法返回。Null是所有AnyRef子类的超类,而Nothing是所有类型的子类,常用于异常处理。Nil则是List的空实例,是所有List[T]的子类。
摘要由CSDN通过智能技术生成
None是一个object,是Option的子类型,定义如下 


[java] view plain copy
 print?
case object None extends Option[Nothing] {  


  def isEmpty = true  


  def get = throw new NoSuchElementException("None.get")  


}  


scala推荐在可能返回空的方法使用Option[X]作为返回类型。如果有值就返回Some[x](Some也是Option的子类),否则返回None,例如 


[java] view plain copy
 print?
def get(key: A): Option[B] = {  


    if (contains(key))  


        Some(getValue(key))  


    else  


        None  


}  


获得Option后,可以使用get获得包含的值,或者使用getOrElse获得默认值如果isEmpty为true。 


Null是所有AnyRef的子类,在scala的类型系统中,AnyRef是Any的子类,同时Any子类的还有AnyVal。对应java值类型的所有类型都是AnyVal的子类。所以Nul
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值