我有这个(它是一个Node.js插件)
void Method(const v8::FunctionCallbackInfo<v8::Value>& args) {
int count = args[2]->ToNumber()->NumberValue();
int priority = args[3]->ToNumber()->NumberValue();
int priority_search_cap = args[4]->ToNumber()->NumberValue();
cout << " count => " << count << endl;
cout << " priority => " << priority << endl;
cout << " priority_search_cap => " << priority_search_cap << endl;
}
我注销的是:
count => -2147483648
priority => -2147483648
priority_search_cap => -2147483648
我想要做的是在没有传递值来正确初始化它们的情况下给这些变量设置默认值? (意思是,args [2],args [3],args [4]未定义。)
如何为这些整数提供默认值?
答案 0 :(得分:5)
Value
类型有一个很好的IsUndefined()
方法来检查
您可以使用三元表达式在未定义值的情况下设置值0:
int count = args[2]->IsUndefined() ? 0 : args[2]->ToNumber()->NumberValue();
int priority = args[3]->IsUndefined() ? 0 : args[3]->ToNumber()->NumberValue();
int priority_search_cap = args[4]->IsUndefined() ? 0 : args[4]->ToNumber()->NumberValue();
在此处检查Value
API:http://bespin.cz/~ondras/html/classv8_1_1Value.html#aea287b745656baa8a12a2ae1d69744b6