我想知道 R3 在处理脚本头的 Needs 字段时的行为以及它对单词绑定的影响。
背景。我目前正在尝试将一些 R2 脚本移植到 R3 以学习 R3。在 R2 中,脚本头的 Needs 字段本质上只是文档,尽管我通过自定义函数使用它来引用使我的脚本运行所需的脚本。
R3 似乎调用了需要引用的脚本本身,但绑定似乎与执行其他脚本不同。
例如,当 %test-parent.r 是:
REBOL [
title: {test parent}
needs: [%test-child.r]
]
parent: now
?? parent
?? child
和 %test-child 是:
REBOL [
title: {test child}
]
child: now
?? child
R3 Alpha(Saphiron build 22-Feb-2013/11:09:25)返回:
>> do %test-parent.r
Script: "test parent" Version: none Date: none
child: 9-May-2013/22:51:52+10:00
parent: 9-May-2013/22:51:52+10:00
** Script error: child has no value
** Where: get ajoin case ?? catch either either -apply- do
** Near: get :name
我不明白为什么 test-parent 无法访问由 %test-child.r 设置的 Child
如果我从 test-parent.r 标头中删除 Needs 字段,而是在 DO %test-child.r 中插入一行,则没有错误,并且脚本按预期执行。