如何避免Rebol中对象函数和全局函数之间的名称冲突?

giu*_*ati 3 conflict namespaces rebol object

我有一个名为open需要调用全局的函数的对象open.

obj: make object! [
    open: func [fn] [
        client: open fn ...
    ]
]
Run Code Online (Sandbox Code Playgroud)

堆栈溢出时,这种情况很糟糕......

那么,如何访问全局open内部对象open?(请不要告诉我"更改名称":-)

ear*_*arl 5

在Rebol 3中,您可以使用它lib/open来引用内置open函数.

lib是一个对象(在Rebol-lingo中有时也称为"上下文"),它包含所有公开导出的函数,包括内置函数.lib上下文的全名是system/contexts/lib(所以你也可以用它system/contexts/lib/open来引用open内置的),但因为这是一个满口,所以lib也提供了方便的快捷方式.

另请参阅Brian Hawley关于"用户定义的单词"的答案Carl Sassenrath关于R3基本情况的帖子,以获取更多技术细节.