1
18
你可能需要一个 ADT 只能用黄金比率数字构造,然后写myfun来接受该数据类型。 我假设Integer是一个基类型,但您可以使用其他类型(例如:Double或Float),甚至可以是多态的。 1) 制作ADT
2) 使用ADT构建
如果你想打电话
扼要重述
建立黄金数字
注意什么时候检查!你有一个编译时间保证
对你问题的评论中给出的备选方案也值得考虑。如果你只需要一个单一的功能,ADT就有点重了,
|
2
10
smart constructors ,它使用从Int到GoldenInt的函数来检查值是否在所需的比率中。 再努力一点,你就可以 type level numbers 但是,为了确保不需要运行时检查,如果您是初学者,我将坚持使用智能构造函数方法。 上面汤姆的回答就是这个成语的一个例子。 |
3
1
你可以用 an assert ,这是您要替换的,
或返回
或者使用自定义的合同类型,如Tom的答案等。无论如何,都不可能检查约束 在编译时 . 事实上,由于IO monad,任何编译时约束都不可能精确。 |
mg610 · 如何开始C++单元测试 2 年前 |
vidhu · 无URL的自动化测试 2 年前 |
Aessandro · js开关站单元测试[关闭] 6 年前 |
AntoineLB · 断言后期工作Django 6 年前 |
ravikant · Selenium脚本不工作异常 6 年前 |