问题描述
我将一些函数的定义放在一个名为“funcs.red”的文件中,其中的函数将被主程序调用。这是“funcs.red”的例子:
Red []
myadd: func [x y] [x + y]
主程序("main.red")的内容为:
Red [needs: view]
do %funcs.red
view [t: text "result" button "myadd" [t/text: to-string myadd 1 2]]
“main.red”和“funcs.red”都在同一路径中。
在红色控制台中,“main.red”按 do %funcs.red do %main.red
的预期正常工作。然后我尝试编译“main.red”:
red -r -t windows main.red
但它失败了并给出了错误消息:
Compilation Error: undefined word myadd...
那么,在 Red 中,如何在编译时将主脚本与另一个脚本链接?
解决方法
要在编译时引用其他红色源,您应该使用 #include
。当您使用 do
时,它会查找该文件,并在运行时读取并解释它。
#include %funcs.red
您仍然可以在解释脚本时使用 #include
。在这种情况下,解释器会将其视为 do
。