`
visionary_2006
  • 浏览: 126691 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

assert 和 if 的区别

阅读更多
首先,这两个处于c语言中的不同等级,assert不过是系统提供的一个函数,而if则是关键字。其次,两个的语法也不一样,你可以写if( 1 ){}但是写个assert(1){}却不对,当然,这个区别是第一点造成的在语义上,if就不用解释了吧。assert的语义如下:在debug编译模式下,如果assert的表达式求值为false,就会中断程序;在release模式下,则没有任何操作。因此可以说,assert就是在调试模式下用来确保制定条件被满足的一种手法,比如说,你想确保a>0,你就可以写assert( a > 0 );如果在运行过程中,a<=0了,代码就会中断,利用调试器很容易发现问题所在。在“应用程序调试"一书里,作者强烈推荐使用assert,他的代码让同事都抱怨assert太多了。。。。。。
分享到:
评论

相关推荐

    python assert的用处示例详解

    使用assert断言是学习python一个非常好的习惯,python assert 断言...可以理解assert断言语句为raise-if-not,用来测试表示式,其返回值为 下面通过实例代码介绍下python assert 作用,具体内容如下所示: python asse

    assert_reached:详细说明constexpr滥用以启用ASSERT_REACHED

    提供对ASSERT_REACHED和ASSERT_REACHED_BEGIN / END的访问,可以按以下方式使用: # include &lt; iostream&gt;# include " assert_reached.h "ASSERT_REACHED_BEGIN (fooGuard)void foo( bool a, bool b) { if (a) { ...

    Node.js利用断言模块assert进行单元测试的方法

    前言 对于NodeJS, assert模块提供了一系列的断言测试,其实这个模块主要倾向于内部使用,但是也能被用于项目中, 可以通过require(‘assert’)的方式引入,下面本文将给大家介绍关于Node.js用断言模块... assert.ifErr

    Python断言assert的用法代码解析

    可以理解assert断言语句为raise-if-not,用来测试表示式,其返回值为假,就会触发异常。 assert的语法格式: assert expression 它的等价语句为: if not expression: raise AssertionError 这段代码用来检测数据...

    assert_matches:提供宏`assert_matches`来测试模式匹配

    (a, Foo :: A (i) if i &gt; 0 ); 要包含在您的项目中,仅当编译测试时,才将以下内容添加到您的Cargo.toml中: [ dev-dependencies ]assert_matches = " 1.5 " 并将以下内容添加到您的板条箱根目录中: #[cfg(test)] ...

    Python assert (断言) 基本用法

    【功能】:用于判断一个表达式,在表达式条件为 false ...if not expression: raise AssertionError(arguments) 【实例1】 &gt;&gt;&gt; assert True # 条件为 true 正常执行 &gt;&gt;&gt; assert False # 条件为 false 触发异常 Trac

    assert:精简断言库,用于库和业务模型

    当断言失败时,将引发异常,从而消除了代码中if子句的必要性。 该库未使用Symfony或Zend验证程序是有原因的:检查必须是低级,快速,非面向对象的代码,以便在必要的任何地方使用。 使用这两个库中的任何一个都...

    browser-assert:轻量级断言模块

    用于浏览器和旨在与一起使用的Featherwight assert功能。 function assert ( expr , message ) { if ( ! Boolean ( expr ) ) { throw new Error ( message || 'unknown assertion error' ) ; } } 安装 npm i ...

    assert:基于来自assertj的流畅接口的轻量级断言库

    if got != 1 { t . Errorf ( "Abs(-1) = %d; want 1" , got ) } } 有了我们的assert包中包含的匹配器,就可以编写: import "github.com/mediaexchange-io/assert" func TestAbs ( t * testing. T ) { got := ...

    junit-assert-collector:Java库扩展了JUnit的ErrorCollector类,提供了典型的JUnit样式声明方法

    junit-assert-collector 我编写的Java库是为了补充我在Savvis / CenturyLink最初开发的测试框架而开发的测试...if (someValue == false ) { errorCollector . addError( new Throwable ( " someValue was false, expect

    Python assert关键字原理及实例解析

    这篇文章主要介绍了Python assert关键字原理及实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者...if not expression: raise AssertionError assert后可跟参数: assert expression[,assert_error_msg]

    always-assert

    use always_assert :: never; fn apply_transaction ( & mut self , tx: Transaction) -&gt; Result &lt;(), TransactionAborted&gt; { let delta = self . compute_delta ( & tx); if never! ( ! self . check_...

    Android代码-Android-scaex

    Android-scaex This library provides some expressions, IF, Match like Scala. IF enables java if-statement to return a value as Scala if-expression...assert result == "bar"; // if ~ else if ~ String re

    一个使用断言来做应用的Log系统的Delphi单元

     {$IFOPT D+}  Debugger.LogMsg(‘输出调试信息!‘);  {$ENDIF}  ______________________________________________________    就可以直接写成:  __________________________________________________...

    Python3 assert断言实现原理解析

    assert expression 等价于: if not expression: raise AssertionError assert 后面也可以紧跟参数: assert expression [, arguments] 等价于: if not expression: raise AssertionError(arguments) 以下为 ...

    static_if:STATIC_IF库,用于C ++ 14

    C#14的### STATIC_IF库(g ++ 5.1.0或clang ++ 3.4.0) 版权所有2011-2015(c)gununu ... static_assert (Val &lt; 10 , " " ); }; void func () { int a; const int N = 30 ; STATIC_IF ( N &lt; 10 ) {

    Python常用断言函数实例汇总

    Python assert 语句,又称断言语句,可以看做是功能缩小版的 if 语句,它用于判断某个表达式的值,如果值为真,则程序可以继续往下执行;反之,Python 解释器会报 AssertionError 错误。 assert 语句的语法结构为:...

    Python assert语句的简单使用示例

    写在前面 最近每日一更,我这菜鸡都有点儿...if not expression: raise AssertionError 简单看看这些例子: &gt;&gt;&gt; assert True &gt;&gt;&gt; assert False Traceback (most recent call last): File , line 1, in &lt;module

    Python内置函数汇总

    if __name__ == '__main__': """abs() 取绝对值""" assert abs(-1) == 1 """all(iterator) 迭代对象中 全部为True 才返回True""" assert all([0, '', None, False]) is False assert all([]) is True assert ...

    人工智能导论 植物专家系统

    positive(X,Y) if not(negative(X,Y)),! and ask(X,Y). negative(X,Y) if xnegative(X,Y),!. ask(X,Y):- write(X," it ",Y,"?\n"), readln(Reply), remember(X,Y,Reply). remember(X,Y,y):- asserta...

Global site tag (gtag.js) - Google Analytics