自从我使用 C++ 以来已经有很长一段时间了,而且自从我把头转向硬类型以来甚至更久了。我只是在寻找一个可以工作的班轮来从 v8 获取参数,或者在未提供参数时获取默认值。
v8::String::Utf8Value arg0(args[0]);
v8::String::Utf8Value arg1(args[1]);
v8::String::Utf8Value arg2(args[2]);
const char *username = (args.Length() > 0) ? *arg0 : "";
const char *password = (args.Length() > 1) ? *arg1 : "";
const char *service = (args.Length() > 2) ? *arg2 : "login";
输出:
函数();// { 用户名:“”,密码:“”,服务:“登录”} 函数('1');// { 用户名:“1”,密码:“”,服务:“登录” } 函数('1','2');// { 用户名:“1”,密码:“2”,服务:“登录” } func('a', 'b', 'c'); // { 用户名:“a”,密码:“b”,服务:“c” }
不幸的是,以下接近理想的解决方案对我不起作用(有什么想法吗?):
const char *username = (args.Length() > 0) ? *v8::String::Utf8Value(args[0]->ToString()) : "";
const char *password = (args.Length() > 1) ? *v8::String::Utf8Value(args[1]->ToString()) : "";
const char *service = (args.Length() > 2) ? *v8::String::Utf8Value(args[2]->ToString()) : "login";