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
,需要调用global
open

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协议的源代码,您将看到为这些单词定义的快捷方式,这样它们就不会与协议中相同的命名单词冲突