- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第4 章 定义多态和动态过程
短期记忆的局限所造成的困惑导致了对上下文驱动语言的需求。人们很自然的把许多事物分组为概
念,而用简短的名词表达。汽车就是个好例子。汽车是一种复杂的机器,然而三个字母的单词:car,就捕
捉到了它所有的一切。爱是一种抽象的思维,包括了心率升高、性心理焦虑、食欲不振、或者是恶心甚至
是悲痛等现象。例如,失恋将会导致极度的痛苦。所有这一切都包含到一个词:love 中。
聚合看上去是非常自然的。即使是很小的孩子也明白饼干盒中有各种不同的饼干,盒子可能是空的也
可能是满的,如果盒子空了,妈妈或爸爸就要去商店买饼干了。我们掌握复杂思想的能力看来只受到对复
杂思想进行整理分类能力的限制。同存储相比,我们的短期记忆是可怜的,而思维是优秀的。因此程序设
计语言要像其他语言一样演化,使得我们能够把笨重的思想转化成整洁而紧凑的概念,只有这样才是自然
的。在口语中,词语的意义依赖于其他的词语和上下文,通过已有的词语可以创造新的词语。在编程语言
中,为有效地进行交流我们也需要同样的能力,即:用简单、基于上下文的形式处理复杂而笨重的思想,
在已有概念的基础上创造出新的、更加精致的概念。
4.1 使用默认参数
指定默认参数,就是为过程中的某些参数指定默认值。该术语由Object Pascal 的语法而来,显然在标
识符、冒号、简单数据类型、等号之后添加一个常量表达式,就可赋予参数默认值。在这种上下文环境中,
等号=意味着赋值。
Parameter - IdentList [: ([ARRAY OF] SimpleType | STRING | FILE)]
- Ident : SimpleType = ConstExpr
该规则的几个应用如下。
Procedure Proc1( I : Integer = 5 );
Function Func1( S : String = Jello World! ) : Integer;
Procedure Proc2( D : Double; C : Char = S );
注意:查一下函数的规范形式,显然 Delphi并不允许默认的返回类型。
FunctionHeading - FUNCTION Ident [FormalParameters] :
(SimpleType | STRING)
这可能是默认参数规则的对称扩展。
一个或多个参数可以有默认值。第一个默认参数右侧的参数也必定有默认值。
当调用过程时,默认参数的值也可像其他过程一样传递。如果有一个值没有传递,则不再需要逗号分
隔符。如果所有的值都没有传递,则不需要括弧。默认参数的规则是从左至右所有参数的值都必须传递。
不能跳过任何值。考虑下面的过程。
Procedure Proc3( S : String = S; I : Integer = 0; D : Double= 1.0 );
下面是对Proc3 的合法的调用。
Proc3;
Proc3( T );
Proc3( U, 5 );
Proc3( V, 6, 2.0 );
第一次调用中S 的值是‘S’,I 的值是0,D 的值是1.0。第二次调用中S 的值是‘T ’,I 的值是0,D
第4 章 定义多态和动态过程 95
的值是1.0。第三次调用中S 的值是‘U ’,I 的值是5,D 的值是1.0。第四次调用中S 的值是‘V ’,I 的
值是6,D 的值是2.0 。前面对Proc3 的调用都是合法的。当存在显式输入的参数值时,在该参数左侧跳过
任何参数的值都是非法的,由于非常容易导致错误因此并不支持这种语法。例如,
Proc3( , 5);
Proc3( W,, 3.0);
上述都是对Proc3 非法的调用。编译器将报错“Expression expected but , found ”,光标将定位于被跳过
参数的位置。当您知道某个值大多数情况下是合理的,但有时候会改变时,就可以使用默认参数。
4.2 产生多态的行为
当要操纵的数据过于分散时,即使基本的过程也会变得笨拙。考虑一个简单的例子。编写一个打印整
数
您可能关注的文档
最近下载
- 成人胃残余量超声监测技术规范.docx VIP
- 金属冶炼企业安全生产管理人员:事故应急处置和案例分析.ppt VIP
- 采购降本推进计划.pdf VIP
- 定制产品合同协议.docx VIP
- 恒大地下车库VI标识标牌标准化方案(超豪华版)恒大地产集团.pdf VIP
- 【教学课件】《人体对外界环境的感知》(人教).ppt VIP
- 滚动轴承外球面球轴承和偏心套外形尺寸.pdf VIP
- 第一单元第四课《上学路上》教案 湘美版(2024)一年级上册.doc VIP
- 突发事件应急预案.doc VIP
- 2024年03月上海市公安局浦东分局2024年上半年度招考文员笔试上岸试题历年典型考题与考点剖析附带答案解析.docx VIP
文档评论(0)