Scala 踩坑系列

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 在 == 左边时是个
例外:

p1a == null // = false

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

eq 和 ne 方法

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

p1a eq p1a // = true 
p1a eq p1b // = false
p1a eq p2  // = false
p1a eq null // = false
null eq p1a // = false
null eq null // = true

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

数组相等和 sameElements 方法

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

Array(1, 2) == Array(1, 2)  // = false

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

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

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

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值