在J中合并assert
和-:
的功能是什么?我们会在什么情况下申请assert
才能继续?非常感谢你。
答案 0 :(得分:2)
assert
是已定义动词的名称
assert=: 0 0 $ 13!:8^:((0 e. ])`(12"_))
看起来很复杂但实际上只是使用0
在向量中的任何位置测试(0 e. ])
如果有一个零然后(12"_)
,这是一种写一个返回动词的方法12
无论其论点是什么,都会被发送到13!:8
,这是指示错误的外来联合。毫不奇怪12
表示assert
错误,这是您想要使用assert
的错误。前面的0 0 $
确保错误交互在下一行开始后。
与-:
一起使用时,monadic形式assert
(一半)通常不起作用。 Dyadic -:
(匹配)作为一种方式来查看两个事物是否相互匹配,如果它们是,则返回1
,否则返回0
。这意味着将assert
和-:
一起使用的标准方式就是这种形式。
assert (expected result) -: (computed result)
如果计算结果与预期结果匹配,则不会出现assert
错误,如果没有,则会引发assert
错误。使用大量assert
测试允许测试驱动的开发环境。