时钟

时钟

中等

说明

实现一个时钟,它能处理时间,但不涉及日期。

你应该能够给它加上或减去分钟数。

两个表示同一时间的时钟应该彼此相等。

实现

本练习的测试期望你的时钟使用 Pyret 中的data declaration来实现。如果你不熟悉 data declaration,可以先看看官方文档。

作为本练习的一部分,你会比较由Clock数据变体构造出来的值。因为时钟的小时和分钟可以向任一方向进位,以下组合在时钟上是同一个时间:1 小时 1 分钟、0 小时 61 分钟、25 小时 1 分钟和 2 小时 -59 分钟。Pyret 的is测试运算符使用结构相等,因此默认情况下这些组合全都不会相等。为此,你需要自己定义一个相等方法,用来在Clock数据变体的值之间比较时间。如果你不熟悉 Pyret 如何处理相等性,可以看看关于 equality 的官方文档。


来源

与 Erin Drummond 的一次结对编程会话
通过 GitHub 编辑 链接将在新窗口或新标签页中打开
Pyret Exercism

准备好开始 时钟 了吗?

注册 Exercism,借助 66 个练习 和真人导师指导,学习并掌握 Pyret,全部免费。