在Rebol 3中,有object
和context
函数。
差异的目的是什么?
注意:供参考,红色,两者相同,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
]]
append
none
到块。为什么?这只是一个小小的差异吗?
它应该得到一个单独的问题吗?
在所有3中:
context: make function! [[
"Defines a unique object."
blk [block!] "Object words and values (modified)"
][
make object! blk
]]
P.S。版本之间的构造略有不同
答案 0 :(得分:5)
context
历来在Rebol2中作为make object!
的快捷方式引入,并且更好地表示使用该对象提供definitionally scoped命名空间来组织用户代码的意图。
object
,以便为快捷方式提供更自然的名称,并且在使用collect-words
动态构造对象时更有用。
Red应该使用Rebol3 object
定义,因为它提供了方便的额外功能。
答案 1 :(得分:3)
context
和object
提供相同的功能。 context
来自Rebol2,我认为它存在于Rebol3和Red中以实现向后兼容。
object
存在于Rebol3和Red中且几乎相同(在R3版本中它支持object [a: b: c:]
样式,没有太大区别)
所以你可以使用它们中的任何一个。我个人喜欢context
。