我正在尝试构建一个易于使用的命令系统(我不会详细介绍它)。我有一个像这样的数组:
Array1 = Array(Array("help", "List all commands", Function()
' Code for help
End Function,
Array("write", "Write a note: /write <title> <description>", Function(p1, p2)
' Code for write
End Function))
Array2 = Array("This is a title", "This is a description")
我想调用第一个数组的第3个值:Array1(3)(Array2)
而不在Array1
的函数中添加代码。这可能吗?如果是这样,请告诉我如何实现这一目标。
答案 0 :(得分:2)
不,这是不可能的。 VBScript语法不允许这样做。
您可以使用的方法的更近的语法是
Function cmdHelp( arguments )
WScript.Echo "HELP [" & arguments(0) & ":" & arguments(1) & "]"
End Function
Array1 = Array("help", "list all commands", GetRef("cmdHelp"))
Array2 = Array("first", "second")
Array1(2)( Array2 )
也就是说,在数组中放置对将处理操作的代码的引用。
但请注意,在VBScript中,子例程和函数具有一组已定义的参数。当您对引用的过程执行调用时,参数的数量必须与函数/子定义匹配。