lab*_*nth 3 reflection iolanguage
我使用"getSlot(" 方法名称 ")来探索Core和Object的一些内容,以了解一些基本方法是如何实现的.我很好奇if方法是如何编写和尝试的
Io> Object getSlot("if")
==> Object_if()
Io> Object getSlot("Object_if()")
==> nil
Run Code Online (Sandbox Code Playgroud)
这些都没有提供信息.有没有一种方法,以反映/检查/打印此(和其他Object_ keywordishword()的话)?
我前段时间在纽约与一个小组进行了一次谈话,其中包括if如果你对机制很好奇的洁净室实施.你可以在这里看到它.
更直接的,当你看到:
==> Object_if()
在REPL,那是什么告诉你的是,if是绑定到该对象的符号Object这是用C实现的.也就是说,该"办法"实际上是一个CFunction对象,而不是一个Block对象.只有Block对象在REPL中显示其源.