只是好奇类型之间的区别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(使用前将#替换为@)