我正在尝试在 Rebol 3 中创建一个函数调度程序,以便程序接收到的每个字符串都有一个要调用的关联函数。
例如:
handlers: make map! [
"foo" foo-func
"bar" bar-func
]
其中foo-func
和bar-func
是函数:
foo-func: func [ a b ] [ print "foo" ]
bar-func: func [ a b ] [ print "bar" ]
这个想法是select
从字符串开始的函数,所以:
f: select handlers "foo"
这样执行f
与执行foo-func
然后f
使用一些参数调用相同:
f param1 param2
我尝试引用map!
, 或使用 get-words 中的单词但没有成功。
在控制台上使用 a get-word!
,而不通过 amap!
它可以工作:
>> a: func [] [ print "Hello world!" ]
>> a
Hello world!
>> b: :a
>> b
Hello world!
任何帮助表示赞赏。