0

ここでは、ハンドラーに 1 つの引数を割り当てます。

const unsigned argc = 1;
v8::Local<v8::Value> argv[1] = { NanNew("hello world") };

NanMakeCallback(NanGetCurrentContext()->Global(), callHandle, argc, argv);

できます

しかし、2 つのパラメーターを割り当てたい! それが私がやろうとした理由です:

 const unsigned argc = 2;
 v8::Local<v8::Value> argv[1] = { NanNew("hello world") };
 argv[2] = { NanNew("second argument") };

 NanMakeCallback(NanGetCurrentContext()->Global(), callbackHandle, argc, argv);

しかし、その後、次のエラーが発生します。

functions.cc:97:18: error: expected expression
  argv[2] << { NanNew("second argument") };
             ^

私は何を間違っていますか?2 つの引数を割り当てるにはどうすればよいですか? ありがとう

4

2 に答える 2

3

サイズ1の配列を作成しているようです:

v8::Local<v8::Value> argv[1] = { NanNew("hello world") };

次に、インデックス 2 の要素に割り当てようとし{ NanNew("second argument") };ています。これは機能しません。次のような意味でしたか:

v8::Local<v8::Value> argv[2] = { NanNew("hello world"), NanNew("second arg") };

?

于 2015-06-08T22:09:14.383 に答える
3

2 つのステップで初期化を行おうとしています。

int values[2] = { 0, 1 }; // OK: Array of two ints initialized with 0 and 1 respectively

int values[2] = { 0 }; // OK: Array of two ints, first value initialized with 0
values[1]= { 1 }; // Error: This is not an initialization

{ } 構文は、配列の初期化にのみ使用されます。(もちろん関数体なども)

あなたの場合、おそらくこれをしたいでしょう

v8::Local<v8::Value> argv[2] = { NanNew("hello world") , NanNew("second argument") };

以前は、1 つの要素 argv[1] のみで配列を作成しようとしていて、3 番目の要素 argv[2] = ... にアクセスしようとしていたことに注意してください。

インデックスは 0 から始まるため、有効なインデックスの範囲は 0 から N-1 です。

于 2015-06-08T22:11:36.323 に答える