Scala语言中的 any , anyRef 和 anyVal 之间是什么关系?我是编程的初学者。
答案 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。