我在内部读过 R2 将上下文存储为两个表,一个用于单词,另一个用于值,因此您可以要求它们:
o: context [a: 1 b: 2]
>> first o
== [self a b]
>> second o
== [make object! [
a: 1
b: 2
] 1 2]
以任何方式...
>> pick o 1
== [self a b]
>> pick o 2
== [make object! [
a: 1
b: 2
] 1 2]
但是还有第三个“表”(一个块)似乎没有记录,这个只能使用第三个函数访问
>> third o
== [a: 1 b: 2]
>> pick o 3
** Script Error: Out of range or past end
** Near: pick o 3
这第三块应该是什么?
函数中似乎发生了类似的事情,但这次 third 和 pick 都表现良好:
>> f: func [a] [print a]
>> first :f
== [a]
>> second :f
== [print a]
>> third :f
== [a]
>> pick :f 1
== [a]
>> pick :f 2
== [print a]
>> pick :f 3
== [a]
第一个块是参数,第二个块是主体,但是第三个块在函数中代表什么?