2

以下を考えると:

wscript.echo "fx(0)=" & fx(0)

Function fx( v1 )
   fx = 1 + 2
   Wscript.echo "fx=" & fx
End Function

両方の「エコー」行が値を出力します3。関数内のもので構文エラーや再帰ループが発生しないのはなぜですか? 次のサンプルと同じ質問:

wscript.echo "fy()=" & fy()
wscript.echo "fy=" & fy

Function fy
   fy = 1 + 2
   Wscript.echo "fy=" & fy
End Function

すべてのエコー行が出力されます3

関数定義がその名前を RVALUE として参照するときの動作を説明するドキュメントが見つかりません。

ティア。

4

2 に答える 2

0

Plynxに加えて、VBScriptはややあいまいです。そのため、パラメータなしの関数wscript.echo fyだけでなく、を使用することもできます。wscript.echo fy()

ただし、これは、関数名を変数として使用する関数内では逆に機能しません。これを行う場合:

Function fy
   fy = 1 + 2
   Wscript.echo "fy=" & fy()
End Function

エラーが発生しますOut of stack space: 'fy'。関数名を関数として使用すると、再帰関数を作成するときに関数名を変数または関数呼び出しとして使用できるようになったため、実際に便利です。

読みやすくするために、関数呼び出しでは括弧を使用することをお勧めします。これにより、あなたやあなたの同僚のレビューやデバッグが簡単になります。

于 2013-02-04T15:47:24.283 に答える