Scala中的Nothing类型

初学Scala的时候会碰到一个奇怪的东西:Nothing。翻译的话叫“啥都没有”?这个Nothing到底是什么,有什么用?下面是我个人的一些见解。

  1. Nothing是什么

Nothing是一个类型(type)。就像Int、String一样是一个类型,比如值3是Int型的,值"abc"是String型的,与Int、String不同的是,不存在Nothing类型的值。

Nothing这个类型(Type)还有个特点,他是Bottom Type,所谓Bottom type就是他是所有其他类型的子类型(Sub Type) (The bottom type is a subtype of all types.)。 所以可以认为Nothing是Int的子类型,Nothing也是String的子类型。下面摘自Scala Reference 3.5.2 Conformance

For every value type T , scala.Nothing <: T <: scala.Any For every type constructor T (with any number of type parameters), scala.Nothing <: T <: scala.Any

  1. Nothing意义何在

意义之一:用于类型参数(

你可能感兴趣的:(scala,大数据,java)