设为首页收藏本站

Delphi乐园 开发者的家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 1946|回复: 2

断言 [复制链接]

Rank: 4

  • TA的每日心情
    慵懒
    2013-8-10 13:48:45
  • 签到天数: 9 天

    [LV.3]偶尔看看II

    金钱
    60935
    12142
    0
    在线时间
    6 小时
    阅读权限
    10
    精华
    0
    积分
    0
    UID
    10
    发表于 2012-7-6 10:34:39 |显示全部楼层
    分享到:
    一.基本概念
      只是一个“验证推断”的调式工具,而不是程序的一部分。
      a)断言作用:顾名思义,开发者用于“验证自己的推断”的工具,调试阶段使用。
                       简单的参数验证——变量
                       复杂的条件验证——函数
        简而言之, 断言是用来验证我们编码时所做的假设,而不是用来处理
      运行时的各种逻辑分支。

      b)开启与关闭
         整个IDE: Project—>Option—>Compiler—>Assertion
         代码中:{$ASSERTIONS ON} ,{$ASSERTIONS OFF}

      C)何处使用
         1)私有函数中进行“参数检查”
         2)适当的地方,检查系统中的某些关键变量
              对于公共函数,通常不使用assertion检查,因为一般来说,公共函数
         必须对无效的参数进行检查和处理。而私有函数往往是直接使用的。
             如果触发了断言,说明私有函数的“调用者出了差错”——没有保证好参数的范围   

      PS: 为什么私有函数里的条件检查不用if-else,而用断言
           1)断言更加简洁
           2)编码习惯上,私有函数通常“直接使用参数,而不检查”,程序的release版本里,
           断言可以直接去除。

    二.应用实例
        调用私有函数:

    begin  {$ASSERTIONS ON}  Self.SetUserInfo('Terry',200);end;
        私有函数:

    procedure TFrmMain.SetUserInfo(name: string; age: integer);begin   ASSERT(((age>0)and(age<120)), '年龄输入超出范围!!');      Self.FName:=name;   Self.FAge:=age;end;
    曾经拥有 该用户已被删除
    发表于 2014-5-14 17:40:56 |显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    delphi乐园微信公众号

    手机版|Delphi乐园 ( 冀ICP备11023363号-7 )    

    GMT+8, 2016-10-23 02:15

    Powered by Discuz! X2

    © 2001-2011 Comsenz Inc.

    公网安备 14090202000504号

    回顶部