如果整数初始化为空,则为整数指定默认值

Give integers a default value if they are initialized as empty

本文关键字:整数 默认值 初始化 如果      更新时间:2023-10-16

我有这个(它是一个节点.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]是未定义的。

如何为这些整数提供默认值?

>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