首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在V8中压缩整数?

如何在V8中压缩整数?
EN

Stack Overflow用户
提问于 2018-04-06 03:04:31
回答 1查看 430关注 0票数 0

我试图在v8中压缩一个整数。

到目前为止,我取得成功的最接近的方法是使用String::Concat。我试着编写这个方法(在node.js 9.11.1本机插件中),但它没有编译。

代码语言:javascript
复制
void Method(const FunctionCallbackInfo<Value> &args) {
  Isolate *isolate = args.GetIsolate();

  const int num = 42;
  args.GetReturnValue().Set(
      String::Concat(String::NewFromUtf8(isolate, "The num is: "),
                      Integer::New(isolate, num)));
}

编译错误是:

代码语言:javascript
复制
'=': cannot convert from 'v8::Integer *' to 'v8::String *volatile '

我还无法找出v8 API的正确部分来将整数格式化为字符串。我(可能很明显)不熟悉v8 API,我很难找到好的示例来学习。

我是在回答这个问题:How to convert an Integer to a String in V8?,尽管与现代的v8 API相比,它似乎已经过时了。例如,该示例似乎是预“隔离”的。

我的印象是,Concat会接受这一点,因为在JavaScript中,它只是将int强制到一个字符串(这似乎是我所引用的问题的要点)。但我想,在用v8编写代码时,我可能必须明确这一点吗?

我肯定我错过了一些简单的东西。如果有人提出更好的建议我会很感激的。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-06 04:36:54

尝试在您刚刚创建的ToString上调用Integer

参见此处的函数声明:https://chromium.googlesource.com/v8/v8/+/6.5.254.41/include/v8.h#2333

"JavaScript只是强制执行int“的魔术必须在某个地方实现--即在C++端,所有这些转换都是手动完成的;-)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49684638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档