编辑“︁
Modula-3
”︁(章节)
跳转到导航
跳转到搜索
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
====过程调用==== 过程调用有如下形式:<code>P(Bindings)</code>,这里的<code>P</code>是一个过程取值的表达式,而<code>Bindings</code>是关键字或位置绑定的一个列表。关键字绑定有如下形式:<code>name := actual</code>,这里的<code>actual</code>是一个表达式,而<code>name</code>是一个标识符。位置绑定有如下形式:<code>actual</code>,这里的<code>actual</code>是一个表达式。当关键字和位置绑定混合在一个调用中的时候,位置绑定必须前导于关键字绑定。如果绑定列表为空,圆括号仍然是需要的。 绑定列表要如下这样重写,来适合<code>P</code>的类型签名:首先,每个位置绑定<code>actual</code>,若为<code>Bindings</code>中的第<code>i</code>个绑定,则通过补充上第<code>i</code>个形式参数的名字,转换成关键字绑定增加到关键字绑定列表中。其次,对于有缺省值并且在第一步之后没有被绑定的每个形式参数,将它的形式参数的名字<code>name</code>和它的缺省值<code>default</code>,形成关键字绑定<code>name := default</code>增加到关键字绑定列表。重写成的关键字绑定列表必须只绑定形式参数,并且必须只绑定每个形式参数正好一次。 执行过程调用,需要求值过程取值表达式<code>P</code>和它的实际参数,绑定形式参数,并执行过程体。<code>P</code>和它的实际参数的求值次序是未定义的。调用一个未定义或<code>NIL</code>过程,是一个必查的运行时间错误。调用具有过程体<code>B</code>的真正过程,在绑定了实际参数之后等价于: <syntaxhighlight lang="objectpascal"> TRY B EXCEPT return-exception => (*skip*) END </syntaxhighlight>而调用具有过程体<code>B</code>的函数过程等价于: <syntaxhighlight lang="objectpascal"> TRY B; (错误:没有返回值) EXCEPT return-exception (v) => (结果成为v) END </syntaxhighlight>
摘要:
请注意,所有对Local Chinese Wikipedia的贡献均可能会被其他贡献者编辑、修改或删除。如果您不希望您的文字作品被随意编辑,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源(详情请见
Project:著作权
)。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)
导航菜单
个人工具
未登录
讨论
贡献
创建账号
登录
命名空间
页面
讨论
大陆简体
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
查看
阅读
编辑
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息