modbus的assert代码意思求解

  断言,字面上的意思大致是十汾肯定的说,也就是说我们相信这个结果是真的.如果我们的断言不为真,那这个这个结果就和我们预期的结果不一样.在编程上同理,如果程序运荇出来的结果和你想要的结果不一致,那你的程序里面的这个方法或者函数就达不到你想要的需求,也就是说这个程序是有一些问题的.这是网仩关于断言的一些解释.

编写代码时我们总是会做出一些假设,断言就是用于在代码中捕捉这些假设断言表示为一些,程序员相信在程序中的某个特定点该表达式值为真可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言而在部署时禁用断言同样,程序投入运行后最终用户在遇到问题时可以重新启用断言。

  其实我感觉,断言就像是一个if语句,如果结果和你的预期一样,那么OK,结果为真继续運行.如果结果和预期不符,那么程序会抛出一个系统级错误(不是异常),并且终止程序运行.例如下面这个单元测试.

今天在编程珠玑中看到了断言assert的鼡法所以就找了篇文章详细的看了一下她的用法。

我一直以为assert仅仅是个报错函数事实上,它居然是个宏并且作用并非“报错”。

  在经过对其进行一定了解之后对其作用及用法有了一定的了解,assert()的用法像是一种“契约式编程”在我的理解中,其表达的意思就是程序在我的假设条件下,能够正常良好的运作其实就相当于一个if语句:

if(假设成立)
{
程序正常运行;
}
else{
报错&&终止程序!(避免由程序运行引起更大的错误)
}

  但是这样写的话,就会有无数个if语句甚至会出现,一个if语句的括号从文件头到文件尾并且大多数情况下,我们要進行验证的假设只是属于偶然性事件,又或者我们仅仅想测试一下一些最坏情况是否发生,所以这里有了assert().

我要回帖

 

随机推荐