3

我正在使用“getSlot(”方法名称“) 来查看一些核心和对象,以查看一些基本方法是如何实现的。我很好奇if方法是如何编写和尝试的

Io> Object getSlot("if")
==> Object_if()
Io> Object getSlot("Object_if()")
==> nil

这些都没有提供信息。有没有办法反映/检查/打印这个(和其他 Object_keywordishword ( ) 词)?

4

1 回答 1

9

不久前,我在纽约的一个小组进行了一次演讲,其中包括一个洁净室的实施,if如果你对力学感到好奇。你可以在这里看到它。

更直接的是,当你看到:

==> Object_if()

在 REPL 中,它告诉你的if是一个绑定到 C 中实现的对象的符号Object。也就是说,“方法”实际上是一个CFunction对象,而不是一个Block对象。只有Block对象在 REPL 中显示其来源。

于 2013-12-02T22:59:45.953 回答