|NO.Z.00006|——————————|BigDataEnd|——|Hadoop&Scala.V06|——|Scala.v06|Scala编程|类层次结构|

一、类层次结构
## --- 类层次结构

~~~     # Scala中,所有的类,包括值类型和引用类型,都最终继承自一个统一的根类型Any。
~~~     # Scala中定义了以下三个底层类:
~~~     Any是所有类型共同的根类型,Any是AnyRef和AnyVal的超类
~~~     AnyRef是所有引用类型的超类
~~~     AnyVal是所有值类型的超类
## --- 上图中有三个类型需要注意:

~~~     # Null是所有引用类型的子类型
~~~     Null类只有一个实例对象null。
~~~     null可以赋值给任意引用类型,但是不能赋值给值类型。
~~~     # Nothing位于Scala类继承关系的底部,它是其他所有其他类型的子类型
~~~     Nothing对泛型结构有用 。比如,空列表Nil的类型就是List[Nothing]
~~~     Nothing的可以给出非正常终止的信号。比如,使用Nothing处理异常
~~~     Unit类型用来标识过程,过程就是没有返回值的方法,Unit类似于Java里的void。Unit只有一个实例()。
二、类层次结构
## --- 类层次结构语法
~~~     # null 不能赋值给值类型

scala> val i: Int = null
<console>:11: error: an expression of type Null is ineligible for implicit conversion
       val i: Int = null
                    ^

scala> val str: String = null
str: String = null
~~~     # 使用 Nothing 处理异常

scala> val test = false
test: Boolean = false

scala> val thing: Int = if (test) 42 else throw new Exception("ERROR!")
java.lang.Exception: ERROR!
  ... 28 elided
~~~     # Unit类型只有一个实例(),该实例没有实际意义

scala> val a = ()
a: Unit = ()

 
 
 
 
 
 
 
 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

 

posted on   yanqi_vip  阅读(58)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示