我有一个带有多个参数的任意函数,我想从命令行调用它,如下所示:
program myfun 7 24 15
我尝试这样做:
myfun Func: [A B C][...]
ARGS: Probe System/Options/Args
Print Do [ARGS/1 Remove ARGS]
我的想法是,我使用 ARGS/1 检索命令名称,然后将其从参数列表中删除,将其与其余参数放在一个块中,并使用 Do 进行评估。但是,它只返回没有函数名称的参数:
7 24 15
。我还尝试将这两个值复制到不同的变量,但没有成功,而且我无法理解出了什么问题。
很高兴在这里见到新人。 简而言之:
myfun: func [][A B C
system/options/args
是字符串列表。最好将整个论证本身作为一个字符串。所以用system/options/args
print do system/options/args
如果使用字符串作为参数调用“do”,则该字符串在执行之前会被标记化并绑定到全局环境。
因此,请在名为 test.r 的文件中尝试此操作
REBOL []
args: system/options/args
myfunc: func [ ][ print "from the function" ]
do probe myfunc
并用
rebol test.r myfunc 1 2 3
来调用它