c++ - 如果整数初始化为空,则给整数一个默认值

标签 c++ node.js v8

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

我怎样才能给这些整数默认值?

最佳答案

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

关于c++ - 如果整数初始化为空,则给整数一个默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41436698/

相关文章:

javascript - 数组解构赋值在 Node.js 中使用 Harmony 选项在 v8 中不起作用

c++ - ICU 探测所有货币符号

javascript - 什么时候应该让一个函数返回一个 promise ?

c++ - 从 dll 中导出专门的模板函数

Node 中的 C# HMAC Sha256 等效项

javascript - Firebase 管理 SDK 无法在 Cloud Scheduler (PubSub) 上运行

node.js - CodeStar/CodeBuild Role X 信任太多服务,预计只有 1 个

javascript - 如何使用nodeJS接收简单的一行用户输入?

c++ - string::erase() 在 linux/windows 中给出不同的结果

c++ - 将具有结构初始化和赋值的 C 代码移至 C++ 编译器