在Scala中进行字符串比较时,请使用'=='而不是equals方法

10
为什么在Scala中推荐使用==而不是.equals进行字符串比较?在StackOverflow中有很多问题不推荐在Java中使用引用相等性进行字符串比较,但为什么在Scala中建议做完全相反的事情?

4
尽管Scala运行在JVM上,但它并不是Java。更具体地说,Scala中的安全操作在Java中可能并不安全。 - Elliott Frisch
3
在Scala中,“==”和“.equals”有什么区别? - Govind Singh
1
你从哪里得到==是引用相等的想法的? - Jörg W Mittag
@JörgWMittag https://dev59.com/mXA65IYBdhLWcg3wrgoa - Core_Dumped
1
那个问题是针对完全不同的编程语言的,与 [tag:scala] 毫无关系。 - Jörg W Mittag
显示剩余2条评论
1个回答

24
在Scala中,==equals等效,不同之处在于前者可以处理null,因此不会抛出NullPointerException
如果要实现引用相等性,请使用eq

4
==equals之间还有其他细微差别,例如==能够识别数字等价性:1==1L但是!1.equals(1L)。通常情况下,除非有明确的理由不这样做,否则使用==是合理的运算符。 - blintend
没错!在Scala中,“==”是首选。 - Jean Logeart

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接