scala:Any 和 AnyRef 有什么区别? [复制]

2024-04-20

只是好奇类型之间的区别Any and AnyRef在斯卡拉。 为什么int属于AnyVal但字符串属于AnyRef?

例如:

val a: AnyVal = 3
val b: AnyRef = "1"

Any 是所有类型的超类型。 Any 有两个直接子类:AnyVal 和 AnyRef。

AnyVal 代表值类型。有九种预定义值类型,并且它们不可为 null:Double、Float、Long、Int、Short、Byte、Char、Unit 和 Boolean。

AnyRef 代表引用类型。所有非值类型都定义为引用类型。 Scala 中的每个用户定义类型都是 AnyRef 的子类型。 scala 中的 String 等于 java.lang.String,是 AnyRef 的子类型。

scala.Any 的结构 https://i.stack.imgur.com/O4e5t.png

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

scala:Any 和 AnyRef 有什么区别? [复制] 的相关文章

随机推荐