若您曾经“想要一种简单的面向对象的语言”,或者认为“Perl的功能虽然好用,但它的语法真让人受不了”,又或者觉得“lisp系列语言的思想不错,但到处都是括号真让人讨厌,最起码算式应该按照通常的样式书写”。那么,Ruby或许能让您满意。
归纳以来,Ruby有以下优点。
- 解释器
- Ruby是解释型语言,其程序无需编译即可轻松执行。
- 变量无类型
- Ruby的变量没有类型,因此不必为静态的类型匹配而烦恼。相应地,错误检查功能也变弱了。
- 不需要变量声明
- 所有变量均无需声明即可立即使用。另外,从变量名即可判断出是何种变量(局部变量,全局变量,实例变量)。
- 语法简单
- 语法比较简单,类似Algol系语法。
- 不需要内存管理
- 具有垃圾回收(Garbage Collect,GC)功能,能自动回收不再使用的对象。
- 一切都是对象
- Ruby从一开始就被设计成纯粹的面向对象语言,因此以整数等基本数据类型为首的所有东西都是对象,它们都有发送信息的统一接口。(这方面连Java都不如Ruby)
- 类,继承,方法
- Ruby当然具有面向对象语言的基本功能。
- 特殊方法
- 可向某对象添加方法。例如,可以把GUI按钮被按下时的动作作为方法记述下来,还可以用它来进行原型库(prototypebase)的面向对象编程(有人这么干吧)。
- 用模块进行混合插入(Mixin)
- Ruby故意舍弃了多重继承,但拥有混合插入功能。使用模块来超越类的界限来共享数据和方法等。
- 迭代器
- 该功能可以将循环抽象化。
- 闭包
- 可以将某过程片段对象化。对象化后的该过程片段就称作闭包。
- 功能强大的字符串操作/正则表达式
- 以Perl为样板创造出了功能强大的字符串操作和正则表达式检索功能。
- 拥有超长整数
- 添加超长整数功能后,可以计算非常大的整数。例如计算400的阶乘也轻而易举。
- 具有错误处理功能
- 错误处理功能可以使您编写代码处理出错情况。
- 可以直接访问OS
- Ruby可以使用(UNIX的)绝大部分的系统调用。单独使用Ruby也可以进行系统编程。
- 动态加载
- 若OS支持的话,可以在运行时读入对象文件。
但Ruby也有下列缺点。
- 因为Ruby是解释型语言,所以速度较慢
- 静态检查比较少