Scala 踩坑系列
2024-09-01 12:55:07
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
方法用于测试引用的相等性。也就是说,如果 obj1
和 obj2
指向内存中的同一个位置,
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
最新文章
- ASP.NET Cookie(二)--控制Cookie的范围
- 谈BFC和haslayout
- C语言深度挖掘
- Exif
- yum简单安装salt master与minion
- 如何在图像处理工具包ImagXpress中对图像进行捕捉、复制和粘贴
- JSBinding + SharpKit / 原理篇:内存管理与垃圾回收
- morris.js 简单学习
- PPAS上运行pg_dump经过II
- MarkDown教程
- css3加载中
- taglib的使用
- c++之 常量
- SQL Server 基础 02 确保数据完整性
- Bullcow 牡牛和牝牛(bzoj 3398)
- MonkeyRecorder
- POJ 3276 Face The Right Way
- 每天学点SpringCloud(六):Hystrix使用
- Yahoo Programming Contest 2019.D.Ears(DP)
- 关于python单例的常用几种实现方法
热门文章
- 某网站的videojs的配置及操作
- Codeforces Round #609 (Div. 2) D. Domino for Young
- 理解*arg 、**kwargs
- vmware 共享文件夹不显示文件的问题
- 2019-2020-1 20199312《Linux内核原理与分析》第四周作业
- Appium自动化测试教程-自学网-monkeyrunner API
- 四十五.加密与解密 AIDE入侵检测系统 扫描与抓包
- jQuery相关方法6----三大系列属性
- 解决vue多个路由共用一个页面的问题
- arch linux下网易云音乐运行没反应,只能使用root用户运行