如果你想比较一下看看两个对象是否相等,可以使用或者==,或它的反义 !=。(对所有对象都适用,而不仅仅是基本数据类型)

1
2
3
4
scala> 1 ==  2
res24: Boolean = false
scala> 1 !=  2
res25: Boolean = true

这些操作对所有对象都起作用,而不仅仅是基本类型。例如,你可以用他比较列表:

1
2
3
4
scala> List(1, 2, 3) == List(1, 2, 3)
res27: Boolean = true
scala> List(1, 2, 3) == List(4, 5, 6)
res28: Boolean = false

进一步,你还可以比较不同类型的两个对象:

1
2
3
4
scala> 1 ==  1.0 
res29: Boolean = true
scala> List(1, 2, 3) == "hello"
res30: Boolean = false

你甚至可以比较null,或任何可能是null 的东西。不会有任何异常被抛出:

1
2
3
4
scala> List(1, 2, 3) == null
res31: Boolean = false
scala> null ==  List(1, 2, 3)
res32: Boolean = false

(但比较:null == null)时就报错了)

1
2
3
规则:首先检查左侧是否为null,如果不是,调用equals
方法。由于equals是一个方法,因此比较的精度取决于左手边的参数。又由于已经有一个
自动的null检查,因此你不需要手动再检查一次了。

这种类型的比较对于不同的对象也会产生 true,只要他们的内容是相同的并且它们的
equals 方法是基于内容编写的。例如,以下是恰好都有五个同样字母的两个字串的比较:

1
2
scala> ( "he" + "llo") == "hello"
res33: Boolean = true

Scala 的==与Java的有何差别

Java 里的既可以比较基本类型也可以比较引用类型。对于基本类型,Java 的==比较
值比较,如Scala。然而对于引用类型,Java 的==比较了引用的是否为同一个对象(比较内存地址),也就是说这两个变量是否都指向于JVM 堆里的同一个对象。Scala 也提供了这
种机制,名字是 eq。不过,eq和它的反义词,ne,仅仅应用于 可以直接映射到Java的对
象。

示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
object BitOpt {
  class A{}
 def main(args:Array[String]){
   val a = new A
   val b = new A
    println(a==b)
    println(a eq b)
    println(a ne b)
    println(!a.eq(b))
 }
}
 
结果:
false
false
true
true

scala与java的==的比较的更多相关文章

  1. Scala For Java的一些参考

          变量 String yourPast = "Good Java Programmer"; val yourPast : String = "Good Java ...

  2. 使用Scala实现Java项目的单词计数:串行及Actor版本

    其实我想找一门“具有Python的简洁写法和融合Java平台的优势, 同时又足够有挑战性和灵活性”的编程语言. Scala 就是一个不错的选择. Scala 有很多语言特性, 建议先掌握基础常用的: ...

  3. scala调用java的方法,返回了一个对象链表List<Student>,在scala中遍历该链表获取指定Student的名字name

    假设Student类如下: class Student { private int no; private String name; public int getNo() { return no; } ...

  4. scala vs java 相同点和差异

    本贴是我摘抄自国外网站,用作备忘,也作为分享! Similarities between Scala and Java Following are some of the major similari ...

  5. Spark:用Scala和Java实现WordCount

    http://www.cnblogs.com/byrhuangqiang/p/4017725.html 为了在IDEA中编写scala,今天安装配置学习了IDEA集成开发环境.IDEA确实很优秀,学会 ...

  6. IDEA15使用maven编译scala和java

    机器安装maven,在IDEA中配置maven的home 创建项目:new-maven–> scala-archetype-simple project structure–>创建src. ...

  7. scala 与 java 之间的关系

    scala来源于java,但又高于java. scala的设计者Martin Odersky就是一个JAVA控,这位牛人设计了javac和编写了jdk中的通用代码.可以说java语言本身就是Marti ...

  8. 编写Spark的WordCount程序并提交到集群运行[含scala和java两个版本]

    编写Spark的WordCount程序并提交到集群运行[含scala和java两个版本] 1. 开发环境 Jdk 1.7.0_72 Maven 3.2.1 Scala 2.10.6 Spark 1.6 ...

  9. Scala IDEA for Eclipse里用maven来创建scala和java项目代码环境(图文详解)

    这篇博客 是在Scala IDEA for Eclipse里手动创建scala代码编写环境. Scala IDE for Eclipse的下载.安装和WordCount的初步使用(本地模式和集群模式) ...

  10. 用maven来创建scala和java项目代码环境(图文详解)(Intellij IDEA(Ultimate版本)、Intellij IDEA(Community版本)和Scala IDEA for Eclipse皆适用)(博主推荐)

    不多说,直接上干货! 为什么要写这篇博客? 首先,对于spark项目,强烈建议搭建,用Intellij IDEA(Ultimate版本),如果你还有另所爱好尝试Scala IDEA for Eclip ...

随机推荐

  1. 在SpringMVC的controller控制器中使用Servlet原生的API

    只需要在控制器的方法里添加相应的Servlet 参数即可! 支持以下参数: 新建一个controller类,部分代码如下:(省略xml配置文件) @RequestMapping("servl ...

  2. ITest

    渗透测试入门 我很简单,请不要欺负我 网站综合渗透实验: 真的很简单: 你是会员吗: 2015中国网络安全大赛 一.代码执行: 同DZ漏洞全家桶中的"又见DZ,我能那你怎么办". ...

  3. 使用hexo搭建github博客

    Win7系统已经安装了node.js和npm npm install -g hexo-cli 全局安装hexo客户端 hexo init blog 在喜欢的位置初始化blog目录 cd blog np ...

  4. mysqldump 数据库备份命令及脚本

    mysql -uroot -phowhy@123 -e 'show databases;' | grep -ivE 'waring|database|mysql'|sed -r "s#^(. ...

  5. 《Windows编程循序渐进》——MFC封装机制详解

    单文档

  6. Struts2-1.配置&与第一个应用

    配置流程 1.web项目中导入Strus2应用需要的包,复制到项目的lib文件夹下 点击此处下载需要的包,解压后复制进去即可:http://pan.baidu.com/s/1jHhjd2Y 2.编写S ...

  7. JavaScript事件响应的基础语法总结

    1.onclick是鼠标单击事件,当在网页上单击鼠标时,就会发生该事件.同时onclick事件调用的程序块就会被执行,通常与按钮一起使用 //例子 <html> <head> ...

  8. 【LeetCode】459. Repeated Substring Pattern

    Given a non-empty string check if it can be constructed by taking a substring of it and appending mu ...

  9. Java IO 四大附加接口、try-with-resource

    Java IO 四大附加接口.try-with-resource @author ixenos 四大附加接口 Closeable.Flushable.Readable.Appendable Close ...

  10. Gentoo安装详解(五)-- 安装X桌面环境

    安装X桌面环境: 安装Xorg: 检测显卡信息: dmesg | grep video lspci | grep -i VGA 配置INPUT_DEVICE.VIDEO_CARDS变量: 在安装Xor ...