1.3 数据类型与操作符

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.

意思就是:

扫描二维码关注公众号,回复: 11002379 查看本文章

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

equals 比较值

eq 比较引用地址

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

scala类型层次结构

所有的类型都是从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是所有类的子类,那么它可以赋值为任何类型
发布了453 篇原创文章 · 获赞 70 · 访问量 12万+

猜你喜欢

转载自blog.csdn.net/longyanchen/article/details/104763611
1.3
今日推荐