将参数传递给另一个函数
Pass arguments to another function
这里我给Handler分配了一个Argument:
const unsigned argc = 1;
v8::Local<v8::Value> argv[1] = { NanNew("hello world") };
NanMakeCallback(NanGetCurrentContext()->Global(), callHandle, argc, argv);
有效
但是我要给两个参数赋值! 这就是我尝试这样做的原因:
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") };
^
我做错了什么?如何分配两个参数?谢谢
您似乎正在创建一个大小为 1 的数组:
v8::Local<v8::Value> argv[1] = { NanNew("hello world") };
然后尝试将 { NanNew("second argument") };
分配给其索引为 2 的元素。这行不通。你的意思是这样的吗:
v8::Local<v8::Value> argv[2] = { NanNew("hello world"), NanNew("second arg") };
?
您正在尝试分两步进行初始化。
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] 的数组,并试图访问第三个元素 argv[2] = ...
索引从 0 开始,因此有效索引范围为 0 到 N-1。
这里我给Handler分配了一个Argument:
const unsigned argc = 1;
v8::Local<v8::Value> argv[1] = { NanNew("hello world") };
NanMakeCallback(NanGetCurrentContext()->Global(), callHandle, argc, argv);
有效
但是我要给两个参数赋值! 这就是我尝试这样做的原因:
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") };
^
我做错了什么?如何分配两个参数?谢谢
您似乎正在创建一个大小为 1 的数组:
v8::Local<v8::Value> argv[1] = { NanNew("hello world") };
然后尝试将 { NanNew("second argument") };
分配给其索引为 2 的元素。这行不通。你的意思是这样的吗:
v8::Local<v8::Value> argv[2] = { NanNew("hello world"), NanNew("second arg") };
?
您正在尝试分两步进行初始化。
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] 的数组,并试图访问第三个元素 argv[2] = ...
索引从 0 开始,因此有效索引范围为 0 到 N-1。