【发布时间】:2015-12-26 06:17:07
【问题描述】:
Ruby 有什么 Smalltalk 没有的吗?除了 Pascal/C 外观和运算符优先级之外,该语言看起来几乎是一对一的。
【问题讨论】:
Ruby 有什么 Smalltalk 没有的吗?除了 Pascal/C 外观和运算符优先级之外,该语言看起来几乎是一对一的。
【问题讨论】:
Ruby 有而 Smalltalk 没有的东西:
Ruby 有 mixins; Smalltalk 没有。
Ruby 允许向单个对象添加方法;在 Smalltalk 中,所有 方法驻留在类中。
为方便起见,Ruby 有其他几种文字语法,而 Smalltalk 没有。
在 Ruby 中,在 Smalltalk 中动态添加方法是实用且有点用处的,通常将方法和类视为静态的。
Ruby 在类定义中提供了强大的宏; Smalltalk 不提供 宏。
在 Ruby 中(如语言 Self,这方面的先驱,以及 语言 Self 得名),你通常可以 通过省略“self”的提及来缩写“self”的消息调用。 例如,对于“self.foo”,您可以简单地写为“foo”。但在 Smalltalk,你不能通过简单地写“foo”来缩写“self foo”。 这大大节省了编写和阅读 Ruby 代码的成本。
Ruby 不需要声明所有局部变量和 实例变量。
【讨论】: