Scala 踩坑系列

àì夳堔傛蜴生んèń 2021-11-13 14:54 423阅读 0赞

scala List

scala list 如果使用
list(i)的形式进行遍历,如果list数据太多,每次遍历耗时会很久。

因为有一个 head tail 的概念 。

和java的List根据角标去获取值不同。

equals & eq & sameElement

Equals 方法

equals 方法用于测试值的相等,也就是说,如果 obj1 和 obj2 有 相同 的值, obj1 equals obj2 为 true。 obj1 和 obj2 不需要指向同一个实例。

== 和 != 方法

== 的行为与 equals 完全一样,即只测试值是否相等。当 null 在 == 左边时是个
例外:

  1. p1a == null // = false
  2. null == p1a // = false
  3. null == null // = true (编译警告,这永远为true)

eq 和 ne 方法

eq 方法用于测试引用的相等性。也就是说,如果 obj1obj2 指向内存中的同一个位置,
obj1 eq obj2 就为 true。这两个方法只对 AnyRef 类型有定义:

  1. p1a eq p1a // = true
  2. p1a eq p1b // = false
  3. p1a eq p2 // = false
  4. p1a eq null // = false
  5. null eq p1a // = false
  6. null eq null // = true

ne 方法与 eq 的相反,也就是说它与 !(obj1 eq obj2) 等价

数组相等和 sameElements 方法

比较两个数组,在 Scala 中并不能得出我们认为的显而易见的结果:

  1. Array(1, 2) == Array(1, 2) // = false
  2. Array(1, 2) sameElements Array(1, 2) // = true

实际上,我们最好要记住, Array 是我们熟知和喜爱的,它是可变的原始 Java 数组,与
Scala 库中我们习惯使用的集合类型有着不同的方法。

与数组相反,序列(比如 List )的相等性的行为就符合你的期望:

  1. List(1, 2) == List(1, 2) // = true
  2. List(1, 2) sameElements List(1, 2) // = true

转载于:https://www.cnblogs.com/leihuazhe/p/11214272.html

发表评论

表情:
评论列表 (有 0 条评论,423人围观)

还没有评论,来说两句吧...

相关阅读

    相关 vue系列之axios

    最近的项目是用vue开发的 在开发过程中与后端交互使用的是axios 但是post提交后端总是获取不到值 用接口测试器测试没问题 后来才知道是有格式问题axios默认发送的是R