如果先决条件被违反了,则代码将产生未定义行为,因此其预期的工作能否履行也是未知的。不正确的先决条件还可能引发安全问题。

通常,先决条件包括在关于这段代码的文档中。有时它可通过特定的语法结构(如警卫或断言)在代码中进行检测。

例如,阶乘只定义于自然数(大于等于零的整数)。因此计算阶乘的程序将会假定输入的值是一个整数,并且它大于等于零,这就是一个先决条件。[1]

面向对象编程中先决条件是契约式设计的一个重要组成部分。契约式设计还包括后置条件和不变条件的概念。

要成功执行一个子程序所需的任何关于对象状态的限制条件都定义在先决条件中。从程序开发者的角度来看,这就构成了契约中子程序调用者的一部分。调用者有义务来确保在调用子程序前满足先决条件,而被调用的子程序则以后置条件来反馈给调用者。[1]

在继承的关系中,继承了子程序的子类必须满足先决条件。也就是说对被继承的子程序的任何实现或重新定义,也必须遵守他们所继承的契约。重新定义的子程序可以削弱先决条件,但不能增强。[1]

在计算机科学中,不变条件是指,在程序执行过程或部分过程中,可始终被假定成立的条件。比如,循环不变条件是指在循环开始和结束后始终成立的条件。

不变条件在逻辑推理计算机程序正确性时,特别有用。优化编译器理论、契约式设计设计方法论及形式方法,都十分依赖于计算机程序的不变条件。

程序员往往使用断言来现式定义不变条件。一些面向对象编程语言也有特定语法定义类不变条件。[1]

契约式设计(英语:Design by Contract,缩写为 DbC),一种设计计算机软件的方法。这种方法要求软件设计者为软件组件定义正式的,精确的并且可验证的接口,这样,为传统的抽象数据类型又增加了先验条件、后验条件和不变式。这种方法的名字里用到的“契约”或者说“契约”是一种比喻,因为它和商业契约的情况有点类似。

因为Design by Contract是属于Eiffel Software的注册商标,很多开发人员用契约式编程(Programming by Contract),契约编程(Contract Programming),或者契约优先式开发(Contract-First development)来指代这种方法。微软也采用这种设计方法,称为代码合约(Code Contracts)。[2]

刚刚查询:先决条件 小儿七星茶 塔山守备英雄团 梵音洞 不近人情 生氽香肠鱼 贫下中农 Diaries 蜡光纸 花红柳绿 三足鼎立 个人信用报告查询业务 电子游戏 出口产品 人文景观 龟文鸟迹 阿根廷人 双墩刻符 廖容标 上清灵宝济度金书 社会效益 文曲星a1000+ 刘继卣武松打虎组图 中国经济报刊协会 维纶 和解少阳 美标冲击试样缺口拉床 斯旺森 洪洞老槐树 凉拌海带丝 生活窍门那些事儿 柳蝙蝠蛾 甘肃省作家协会 蛋白胨 江村一冲色自然保护 敖德萨 人自为战 多孔生物悬浮球 雪梨黄豆炖猪脚 野草莓茶 甜如蜜的香醇诱惑 剩余价值率 邝小枫 唐灭百济之战 绵阳明天更美好 发行债券 电眼美女3 大山种羊场 中国电信通行证 荷香糯米骨 近春园 保险金 捞刀河 理藩院 宁德技师学院 蓄集乡 丹尼·兰扎特 大小姐 桂阳县广电局 笑星班尼环球之旅 磁变星 唤灵斗师 导语 百叶结炖猪肉 大悲山 鱼香千张丝 ¼ 近些年 泛函分析 东炮台海滨风景区 辛夷沙苑煮墨鱼 圆桌会议 柳桥春晓 北京人济高尔夫俱乐部 钻研新概念英语 塔斯马尼亚灰色大袋鼠 玄阙州 黄骅市 A族链球菌 淀山湖自然保护区
友情链接: 知道 电影 百科 好搜 问答 微信 值得买 巨便宜 天天特价 洛阳汽车脚垫 女装 女鞋 母婴 内衣 零食 美妆 汽车 油价 郑州 北京 上海 广州 深圳 杭州 南京 苏州 武汉 天津 重庆 成都 大连 宁波 济南 西安 石家庄 沈阳 南阳 临沂 邯郸 保定 温州 东莞 洛阳 周口 青岛 徐州 赣州 菏泽 泉州 长春 唐山 商丘 南通 盐城 驻马店 佛山 衡阳 沧州 福州 昆明 无锡 南昌 黄冈 遵义
© 2025 haodianxin 百科 消耗时间:0.061秒 内存2.49MB