编辑“︁
Modula-3
”︁(章节)
跳转到导航
跳转到搜索
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
====With语句==== Modula-3的<code>WITH</code>语句,无关于[[Modula-2]]的同名语句,它有如下形式:{{code|2="modula2"|1=WITH id = e DO S END}},这里的<code>id</code>是一个标识符,<code>e</code>是一个表达式,而<code>S</code>是一个语句。<code>WITH</code>语句声明了具有[[作用域]]<code>S</code>的<code>id</code>,作为变量<code>e</code>的别名,或作为值<code>e</code>的只读名字。表达式<code>e</code>在进入<code>WITH</code>语句的时候被求值一次。一个单一的<code>WITH</code>语句可以包含多个绑定,它们顺序的求值,就是说{{code|2="modula2"|1=WITH id_1 = e_1, id_2 = e_2, ...}},等价于{{code|2="modula2"|1=WITH id_1 = e_1 DO WITH id_2 = e_2 DO ....}}。 <code>WITH</code>语句可类比于某种过程调用<code>P(e)</code>,这里的<code>P</code>被声明为: <syntaxhighlight lang="modula2"> PROCEDURE P(mode id: typeof e) = BEGIN S END P </syntaxhighlight> 这里的算符<code>[[typeof]]</code>只是个示意,它不在语言规定之中;如果<code>e</code>是可写的指定式,则<code>mode</code>是<code>VAR</code>,否则<code>mode</code>是<code>READONLY</code>。在<code>WITH</code>语句和调用<code>P(e)</code>之间唯一的区别为,出现在<code>WITH</code>语句内的[[自由变量]]、<code>RETURN</code>和<code>EXIT</code>,是在<code>WITH</code>语句所在的[[上下文 (计算机)|上下文]]中解释的,而非在新增加的<code>P</code>的上下文中。 Modula-3语言报告使用<code>WITH</code>语句定义其他语句,比如,<code>INC</code>和<code>DEC</code>语句分别有如下形式:{{code|2="modula2"|1=INC(v, n)}}和{{code|2="modula2"|1=DEC(v, n)}},这里的<code>v</code>指示一个[[序数]]类型的变量,而<code>n</code>是可选的一个[[整数]]取值表达式,如果省略<code>n</code>则缺省为<code>1</code>,这两个语句分别等价于{{code|2="modula2"|1=WITH x = v DO x := VAL(ORD(x) + n, T) END}}和{{code|2="modula2"|1=WITH x = v DO x := VAL(ORD(x) - n, T) END}},这里的<code>T</code>是<code>v</code>的类型,而<code>x</code>代表不出现在<code>n</code>中的变量。
摘要:
请注意,所有对Local Chinese Wikipedia的贡献均可能会被其他贡献者编辑、修改或删除。如果您不希望您的文字作品被随意编辑,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源(详情请见
Project:著作权
)。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)
导航菜单
个人工具
未登录
讨论
贡献
创建账号
登录
命名空间
页面
讨论
大陆简体
不转换
简体
繁體
大陆简体
香港繁體
澳門繁體
大马简体
新加坡简体
臺灣正體
查看
阅读
编辑
查看历史
更多
搜索
导航
首页
最近更改
随机页面
MediaWiki帮助
工具
链入页面
相关更改
特殊页面
页面信息