0
点赞
收藏
分享

微信扫一扫

1.3 数据类型与操作符

萧让听雪 2022-10-31 阅读 66


Scala的数据类型:

  1. scala中所有的类型都使用大写字母开头
  2. 整形使用​​Int​​而不是Integer
  3. scala中定义变量可以不写类型,让scala编译器自动推断

Scala 中的运算符:

基本上和Java一样, 除了:

  • scala中没有,++、--运算符
  • 与Java不一样,在scala中,可以直接使用​​==​​、​​!=​​进行比较,它们与​​equals​​方法表示一致。而比较两个对象的引用值,使用​​eq​

引用官方解释

final def ==(arg0: Any): Boolean The expression x == that is equivalent to if (x eq null) that eq null else x.equals(that).

final def eq(arg0: AnyRef): Boolean Tests whether the argument (that) is a reference to the receiver object (this).

def equals(arg0: Any): Boolean The equality method for reference types.

意思就是:

== 在对象是null的时候 调用eq, 对象非null 的时候调用equals

equals 比较值

eq 比较引用地址

也就是如果想要判断两个对象的值是否相等的时候, 推荐使用==方法, 因为如果比较对象为null的时候,用equals会报错的,而==会帮我们进行判断

scala类型层次结构

 

1.3 数据类型与操作符_子类

所有的类型都是从Any继承了, 也就是我们Scala是一种单根继承体系

类型

说明

Any

所有类型的父类,,它有两个子类AnyRef与AnyVal

AnyVal

所有数值类型的父类

AnyRef

所有对象类型(引用类型)的父类 (String 本质就是Char数组, 也是引用类型哦)

Unit

表示空,Unit是AnyVal的子类,它只有一个的实例{% em %}() {% endem %} 它类似于Java中的void,但scala要比Java更加面向对象, Unit 本身也是一个类哦, 当返回值为空的时候,返回的就是Unit, Unit的实例就是一个括号()

Null

Null也就是AnyRef的子类,也就是说它是所有引用类型的子类。它的实例是{% em %}null{% endem %} 可以将null赋值给任何引用对象类型

Nothing

所有类型的子类 不能直接创建该类型实例,某个方法抛出异常时,返回的就是Nothing类型,因为Nothing是所有类的子类,那么它可以赋值为任何类型

 

 

举报

相关推荐

0 条评论