J编程语言中'assert'关键字的功能是什么?

时间:2017-09-12 05:15:44

标签: assert j

在J中合并assert-:的功能是什么?我们会在什么情况下申请assert才能继续?非常感谢你。

1 个答案:

答案 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测试允许测试驱动的开发环境。