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 中的行为是不是不同?