2017-02-02 8 views
0

使いやすいコマンド体系を構築しようとしています(詳しくは解説しません)。 Array1の機能にコマンドにコードを追加することなく、Array1(3)(Array2):私はこのような最初の配列の第三値を呼び出したい配列を複数の値に分割する

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") 

:私はこのような配列を持っています。これは可能ですか?もし私がこれを達成する方法を教えてください。

+1

VBScriptは匿名関数をサポートしていないため、あなたの質問には何が記述できません。しかし、VBScriptで実際にコードに実行させたいものを実装する方法はまだあります。解決策として認識しているのではなく、それを記述した方が良い答えを得るかもしれません。また、 'Array1 = ...'ステートメントに閉じ括弧がないようです。 –

答えて

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では、サブルーチンと関数には引数が定義されていることに注意してください。参照されるプロシージャへの呼び出しを実行するとき、引数の数は関数/サブ定義と一致しなければなりません。

関連する問題