。
图1.创建一个新的Ruby工程
与Java相比,Ruby在命名和目录结构方面要求并不严格。在Ruby中创建一个工程实际上只创建 一个目录和一个工程文件(不需要.classpath文件,因为Ruby没有classpath)。另外一个与Java技 术的显著区别是,Ruby工程向导并不创建显式的src和bin目录。Ruby是解释型的,因此没有输 出文件夹。假如你有一个小工程,那么你可以把Ruby源文件放在与工程文件相同的文件夹下。 作为选择,你还可以创建你自己的目录层次。你会发现,与Java相比,Ruby很少关心这些。 接下来,你将创建一个Ruby源文件。没有特定的向导用于创建一个Ruby源文件。与
Java技术 相比,Ruby源文件中仅需要较少的结构,所以,为了创建一个Ruby文件,你需要右击工程来创 建一个新文件(见下图2)。
图2.创建一个Ruby源文件
别忘记把标准扩展名
.rb添加到该文件(它是正常的Ruby扩展名)。创建一个Ruby文件应该会 打开如图3所示的Ruby视图。
图3.创建一个Ruby文件将启动Ruby视图
Ruby还提供了一个Outline视图(类似于Java提供的那种)。就象它的Java对应物一样,它答 应你在Ruby源文件的元素之间进行导航。在图4中,raise_salary_by方法在Outline和源码视图 中都被加亮。
图
4.这个Outline视图实现在源文件中的
导航 就象其它复杂的插件一样,RDT也答应通过"Window>Preferences"对话框增加定制特征。这个定 制对话框见图5。
图
5.RDT
安装"Preferences"以便实现定制
参数选择"Preferences"菜单项答应你改变语法加亮,格式化(Ruby世界中的标准缩进是两个空格, 而不是四个空格,所以请预备好作一些调整),等等。它还答应你定制编辑器模板并选择你自己 的解释器。六、 RDT编辑器 在Java世界中,我们已习惯于高级编辑器特征-这使得在转到其它 不提供同样支持的其它环境时比较困难。Ruby IDE中所缺乏的特征之一是没有提供内容助手 (它能够提供上下文相关的标识符查找功能)。幸好,RDT编辑器中含有针对Ruby代码的内容 助手,见下图6。
图
6.RDT编辑器提供了内容助手
在Ruby中,你不能把一种类型赋值给一个变量或一个方法的返回,而由标识符上下文确定在运 行时刻的类型。Ruby中引入了一种被亲切地称为"duck typing"的方法。这种方法的思想是,假如 它接受一个假(quack)消息,那么它必须是一个"duck"。这看起来似乎妨碍了那些已经习惯了强 类型化语言的用户,这种松散类型耦合能够支持Ruby语言中一些更强有力的特征。例如,你可 以用Ruby编写一个异常处理器-当你调用一个并不存在的方法时激活它,然后由该异常处理处理 器来自由分析这个方法,然后再调用它。这种元编程级在强类型化语言中是很难实现的。 针对 内容助手的一个挽回特征是,Ruby在使用标识符时使用特定的命名惯例。例如,在Ruby中,所 有的成员变量在第一次使用它们时就存在,并且全部由一个@符号所标识,作为其名字的第一个 字符。假如你使用内容助手查找成员变量,那么你可以输入@,这样以来你就只能看见成员变量 了。
图7.在Ruby帮助内容助手中的命名惯例
动态类型化仍然妨碍在Ruby中的上下文敏感
问题。在图7中,唯一有效的成员变量是正好出现 在方法声明上面的那些,也就是@name,@salary和@hire_year。内容助手所提供的另外一些成
员来自于另一个类(后面定义)。目前,
RDT编辑器还不足够复杂以过滤所有的正确语法但语义 上不正确的入口。 七、 运行与调试 IDE的特色之一是在同一个环境下运行和调试你构建的应用程序。RDT能够启用这两项功能。 八、 指定一个解释器这一任务的实现位于Ruby上部和"Installed Interpreters"入口的 "Windows>Preferences"对话框中。 Ruby是一种解释性的语言,因此,在RDT能够运行或调试你的应用程