Scala Koans 中的 ===(三等号)运算符是啥?

Posted

技术标签:

【中文标题】Scala Koans 中的 ===(三等号)运算符是啥?【英文标题】:What is the === (triple-equals) operator in Scala Koans?Scala Koans 中的 ===(三等号)运算符是什么? 【发布时间】:2012-05-16 09:38:23 【问题描述】:

我开始通过Scala Koans 进行工作,它围绕一组单元测试组织,其中包含需要填写的空白。(这个想法是根据类似的 Ruby Koans 项目建模的。)您启动 sbt 工具运行测试,它警告:

[信息] + *********************************************** [信息] + [信息] + [信息] + [信息] + 请冥想套件“AboutEmptyValues”的公案“无等于无” [信息] + [信息] + [信息] + [信息] + ***********************************************

...所以你去看看这个单元测试,它说:

测试(“无等于无”) 断言(无 === __)

...而且,在冥想之后,你意识到你应该像这样填写空白:

测试(“无等于无”) 断言(无 === 无)

...然后它继续进行下一个单元测试。

不过,我的问题是,=== 运算符是什么?我似乎无法在任何地方找到它。这是 Scala Koans 项目本身定义的 DSL 运算符吗?还是它是 ScalaTest 框架的一部分?还是在 Scala 中?

【问题讨论】:

【参考方案1】:

这是来自ScalaTest 的三等号运算符。看看这个页面:Getting Started with FunSuite。它说:

ScalaTest 允许您使用 Scala 的断言语法,但定义了一个三元组 等于运算符 (===) 为您提供更好的错误消息。下列 代码会给你一个错误,表明断言失败:

assert(1 == 2)

改用三等号会给您提供更多信息的错误 消息,“1 不等于 2”:

assert(1 === 2)

【讨论】:

以上是关于Scala Koans 中的 ===(三等号)运算符是啥?的主要内容,如果未能解决你的问题,请参考以下文章

三等号 (===) 在 AssemblyScript 中的行为是不是不同?

三等号(===)在AssemblyScript中的行为是否不同?

Spark基础学习笔记11:Scala运算符

ECMAScript运算符之《等性运算符》

大数据处理学习笔记1.4 掌握Scala运算符

Scala 中的递增 (++) 运算符