【问题标题】:Are there Smalltalks without Meta-Classes?是否有没有元类的 Smalltalks?
【发布时间】:2010-11-14 22:54:54
【问题描述】:

至少在 Squeak 和 Pharo 中,每个类都有其对应的元类,它包含该类的类方法。每个 Smalltalk 都是这样吗?

【问题讨论】:

  • 只是好奇——你的问题是什么?
  • 实现 Smalltalk-80 的衍生语言。

标签: smalltalk metaclass


【解决方案1】:

根据Wikipedia article on Smalltalk,Smalltalk-80 中引入了元类,我认为现在常用的所有版本都有。

早期版本,Smalltalk-71、Smalltalk-72 和 Smalltalk-76 没有。

【讨论】:

    【解决方案2】:

    您可以查看Self 语言。它是 Smalltalk 基于原型的后代。

    【讨论】:

    • 是的,虽然在技术上是正确的,但 Self 也没有类……(至少在用户级别:)
    • 从smalltalk虚拟机的角度来看,没有metaclass这种东西。只有类。 IE。每个对象都有自己的类,尽管它们定义了它的行为。对我而言,元类的概念是“可选的”,因为您可以将 smalltalk 系统更改为您将只剩下类。而且这个系统仍然可以被称为 Smalltalk。
    猜你喜欢
    • 2016-07-21
    • 1970-01-01
    • 2011-12-12
    • 1970-01-01
    • 2016-05-12
    • 1970-01-01
    • 2018-09-16
    • 2021-02-07
    • 2013-07-01
    相关资源
    最近更新 更多