rebol - `context` 和 `object` 和有什么区别?

标签 rebol rebol3 rebol2 red

在 Rebol 3 中,有函数 objectcontext

差异的目的是什么?

注意:供引用,红色,两者相同,并且object不存在 在《叛乱2》中

上下文:无双关语

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

现在,在学习了用于制作对象的object这个词之后, 我很好奇为什么它们都不同,以及用不同的东西制造相同的东西的理由

请注意,在 rebol3 中:

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

附加到 block 。为什么?这只是一个微小的差异吗? 它值得一个单独的问题吗?

总共 3 个:

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

附注版本之间的结构略有差异

最佳答案

context 历史上在 Rebol2 中作为 make object! 的快捷方式引入,并更好地表示使用对象提供 definitionally scoped 的意图。用于组织用户代码的命名空间。

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

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

关于rebol - `context` 和 `object` 和有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41416193/

相关文章:

rebol - 使用带解析的嵌套规则

svg - 使用 GOB 的 Rebol 3 文本渲染问题

module - Rebol模块中的单词是如何绑定(bind)的?

module - 如何在模块内使用模块?

oop - rebol 中是否有对象构造函数

binary - 如何转换二进制!到一个字符!在《叛逆2》中?

date - red/rebol : Subtracting dates returns days, 我该如何改变它?

Rebol 2 端口绑定(bind)到多个 IP

Rebol迭代面-截断文本

rebol - 为什么不能在 Rebol 中覆盖内置函数?