Eiffel 引介 Part V (1)
来源:互联网 发布:linux nohup 编辑:程序博客网 时间:2024/06/10 21:41
5 杂项议题
5.1 Eiffel 中的简单型别
l Eiffel 中的简单型别包括 CHARACTER,BOOLEAN,INTEGER,REAL 以及 DOUBLE。
l 简单型别之对象的赋值以及等同性(equality)检查与照常想象到的一样,即 a := b 的结果是将 b 的值拷贝给 a,而 a = b 则在 a 与 b 所代表的值相等的时候为真值。
l 检查不等性时,使用 a /= b
l 简单型别的对象不需要予以显式的创建。
l 简而言之,简单型别采用值语义(value semantics)。
5.2 Class Types
l 简单型别以外的其它型别之对象是通过 references(引用;也称 pointers,指针)来实现的。这样的对象需要被显式的创建。
l 如果 b = Void 为真,那么 b 不指代任何引用对象。如果 b /= Void 为真,那么 b 指代一个已经创建的对象。
l 于是,a := b 使得 a,b 两者指代同一个对象(即成为同一个对象的引用)。这种情况下, a = b 的结果为真。
l 同样,我们使用 a /= b 来检查不等性。
l 还有一些方法(copy,is_equal)可以实现将一个被引用对象的域(field)拷贝到另一个对象对应的中,并可以检查两各对象是否包含相同的值。
l 简而言之,class types 采用引用语义(reference semantics)。
5.3 GENERAL 类别
l 每一个类别都默认的继承自类别 ANY,而类别 ANY 则是继承自类别 GENERAL。
l Void 这个 feature 正是身居 GENERAL 中,因此每一个类别都可以使用它。
l 类别 GENERAL 的另一个重要的 feature 是 io。io 被声明为 STD_FILES 型别,提供对输入/输出程序(routines)的便捷访问。
l 例如, io.readint 从标准输入读取一个整数。读取的结果被放在 io.lastint中。(可注意到,能改变状态的feature与只询访状态(即不能改变状态)的feature是分离开来的。)
5.4 变量与对象
l 要让变量 b 指代一个对象,有两种方法:
1. 显式创建 b 对象:!!b.make
2. 用已经创建的对象对 b 赋值:!!a.make; b := a
l 类似的,要使 b 脱离(detach)对一个对象的引用,也有两种方法:
1. 显式脱离(Explicit detachment):b := Void
2. 将 Void 引用赋值给 b:a := Void; b := a
- Eiffel 引介 Part V (1)
- Eiffel 引介 Part V
- Eiffel 引介 Part V (2)
- Eiffel 引介 Part IV (1)
- Eiffel 引介 Part IV
- Eiffel 引介 Part III
- Eiffel 引介 Part I,II
- Eiffel
- LESSON 6 MALWARE part V
- Linux学习总结 Part-V
- T-SQL Part V: Locks
- Eiffel 简介
- 初探Eiffel
- Beginning Game Development: Part V - Adding Units
- LINQ: Building an IQueryable Provider - Part V
- LESSON 3 PORTS AND PROTOCOLS part V
- LESSON 4 SERVICES AND CONNECTIONS part V
- LESSON 7 ATTACK ANALYSIS part V
- 关于char类型的取值范围
- Eiffel 引介 Part V
- 如何实现一个循环队列
- OpenMP中的任务调度
- 如何实现一个循环缓冲区模型
- Eiffel 引介 Part V (1)
- 开辟VisualFC(WTL WinxGUI 可视化开发工具)专栏
- 无锁编程与分布式编程那个更适合多核CPU?
- 开源,选择Google Code还是Sourceforge?(修订版)
- 开始用Google Code的Issue
- Eiffel 引介 Part V (2)
- 多核系统中三种典型锁竞争的加速比分析
- 用Erlang Inets轻松实现Web服务器
- VisualFC - WTL/WinxGUI可视化开发环境