我有一个名为open
的函数的对象需要调用全局open
。
obj: make object! [
open: func [fn] [
client: open fn ...
]
]
堆栈溢出时,这种情况很糟糕......
那么,如何访问对象open
内的全局open
?
(请不要告诉我"更改名称": - )
答案 0 :(得分:5)
在Rebol 3中,您可以使用lib/open
来引用内置的open
功能。
lib
是一个对象(在Rebol-lingo中有时也称为“上下文”),它包含所有公开导出的函数,包括内置函数。 lib
上下文的全名是system/contexts/lib
(因此您也可以使用system/contexts/lib/open
来引用内置的open
,但因为这是一个满口的便利还提供了快捷方式lib
。
另请参阅Brian Hawley's answer regarding "user-defined words"和Carl Sassenrath's post on the basic contexts of R3了解更多技术细节。
答案 1 :(得分:3)
在Rebol 2中,您可以使用system/words/open
。如果查看Rebol 2协议的来源,您会看到为这些单词定义的快捷方式,以便它们不会与协议中的相同命名单词冲突。