2017-01-03 79 views
1

初始化我有這樣的(這是一個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

爲什麼不在調用'ToNumber'之前檢查args類型(例如'Value :: IsUndefined')? – DMaster

回答

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

+0

@ Olegzandr:感謝編輯! –

相關問題