4

在 Rebol 3 中,有函数objectcontext

区别的目的是什么?

注意:供参考,红色表示两者相同,object在rebol 2中不存在

背景:没有双关语

最初,我想知道为什么我们有context而不是make object!

现在,在学习了object用于制造物体的词之后,我很想知道为什么它们都不同,以及同一事物具有不同事物的基本原理make

请注意,在 rebol3 中:

object: make function! [[
    "Defines a unique object."
    blk [block!] "Object words and values (modified)"
][
    make object! append blk none
]]

appendnone街区为什么?这只是细微的差别吗?它值得一个单独的问题吗?

在所有 3 中:

context: make function! [[
    "Defines a unique object."
    blk [block!] "Object words and values (modified)"
][
    make object! blk
]]

PS版本之间的构造略有不同

4

2 回答 2

5

context历史上在 Rebol2 中make object!作为.

object在 Rebol3 中添加是为了为快捷方式提供更自然的名称,并且在使用collect-words例如动态构造对象时更有用。

Red 应该使用 Rebol3object定义,因为它提供了方便的额外功能。

于 2017-01-05T13:05:47.037 回答
3

contextobject提供相同的功能。context来自 Rebol2,我认为它存在于 Rebol3 和 Red 中以实现向后兼容性。

object存在于 Rebol3 和 Red 中,几乎相同(在 R3 版本中它支持object [a: b: c:]样式,没有太大区别)

所以你可以使用它们中的任何一个。我个人喜欢context

于 2017-01-02T07:32:21.540 回答