Scala中的Any,anyRef和anyVal

时间:2019-07-07 06:43:11

标签: scala

Scala语言中的 any anyRef anyVal 之间是什么关系?我是编程的初学者。

1 个答案:

答案 0 :(得分:1)

查看Scala官方文档https://docs.scala-lang.org/tour/unified-types.html

的类图
  

任何类型都是所有类型的超类型,也称为顶级类型。它   定义某些通用方法,例如equals,hashCode和   toString。 Any具有两个直接子类:AnyVal和AnyRef。

     

AnyVal代表值类型。有九种预定义的值类型   并且它们是不可为空的:Double,Float,Long,Int,Short,Byte,   字符,单位和布尔值。单位是不包含任何值的值类型   有意义的信息。恰好有一个Unit实例   可以从字面上声明为:()。所有功能必须返回   有时候Unit是有用的返回类型。

     

AnyRef代表引用类型。所有非值类型定义为   参考类型。 Scala中的每个用户定义类型都是其子类型   AnyRef。如果在Java运行时环境的上下文中使用Scala,   AnyRef对应于java.lang.Object。