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

C++ 如果整数初始化为空,则为其指定默认值,c++,node.js,v8,C++,Node.js,V8,我有这个(它是一个Node.js插件) 我想做的是给这些变量提供默认值,以防没有传递值来正确初始化它们?(意思是,args[2]、args[3]、args[4]未定义。) 如何为这些整数指定默认值 Value类型有一个很好的IsUndefined()方法来检查这个值 在未定义值的情况下,可以使用三元表达式将值设置为0: int count = args[2]->IsUndefined() ? 0 : args[2]->ToNumber()->NumberValue(); int

我有这个(它是一个Node.js插件)

我想做的是给这些变量提供默认值,以防没有传递值来正确初始化它们?(意思是,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此处:

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此处:

为什么不在调用
ToNumber
之前检查args类型(例如
Value::IsUndefined
)?为什么不在调用
ToNumber
之前检查args类型(例如
Value::IsUndefined
)?
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();