Object 如何避免Rebol中对象函数和全局函数之间的名称冲突?
我有一个对象,其函数名为Object 如何避免Rebol中对象函数和全局函数之间的名称冲突?,object,namespaces,conflict,rebol,Object,Namespaces,Conflict,Rebol,我有一个对象,其函数名为open,需要调用globalopen obj: make object! [ open: func [fn] [ client: open fn ... ] ] 由于堆栈溢出,这显然失败了 那么,如何访问全局open内部对象open? (请不要告诉我“更改名称”:-在Rebol 3中,您可以使用lib/open来引用内置的open函数 lib是一个对象(在Rebol行话中有时也称为“上下文”),它包含所有公开导出的函数,包括内置函数。l
open
,需要调用globalopen
obj: make object! [
open: func [fn] [
client: open fn ...
]
]
由于堆栈溢出,这显然失败了
那么,如何访问全局open
内部对象open
?
(请不要告诉我“更改名称”:-在Rebol 3中,您可以使用
lib/open
来引用内置的open
函数
lib
是一个对象(在Rebol行话中有时也称为“上下文”),它包含所有公开导出的函数,包括内置函数。lib
上下文的全称是system/contexts/lib
(因此您也可以使用system/contexts/lib/open
来指代内置的open
),但由于这是一个很好的例子,因此还提供了方便快捷方式lib
有关更多技术细节,请参见和。在Rebol 2中,您可以使用
system/words/open
。如果您查看REBOL2协议的源代码,您将看到为这些单词定义的快捷方式,这样它们就不会与协议中相同的命名单词冲突