【发布时间】:2017-03-20 15:22:54
【问题描述】:
使用以下代码创建一个上下文:
c: context [a: 2]
您可以看到它创建了一个上下文c,并且a 没有绑定在全局上下文中:
>> ?? c
c: make object! [
a: 2
]
>> a
** Script Error: a has no value
** Near: a
现在如果你使用bind 'a c,它会返回它被绑定的上下文中单词的值:
>> get bind 'a c
== 2
也和in c 'a一样:
>> (get bind 'a c) = (get in c 'a)
== true
看起来in 是带有翻转参数的bind 的一个版本
那么,in 有何不同?
bind 中添加了一些明显的功能,例如为了提高效率对 /copy 进行了改进,并且还接受了 block! 而不是单个单词作为其 words 参数。
在这种情况下,问题就变成了,为什么in?
注意
这最初是由 question 中的 cmets 推动的,当时我不太了解 bind 是做什么的,gitter 上的讨论促使我发布此
【问题讨论】:
标签: rebol2