请抱歉,我是JavaScript和TypeScript专家,不是c ++专家。
但是JS引擎V8是用c ++编写的,这是那里的代码:
// Convert the result to an UTF8 string and print it.
v8::String::Utf8Value utf8(isolate, result);
printf("%s\n", *utf8);
Run Code Online (Sandbox Code Playgroud)
在上面的代码中有两行。第一行包含utf8功能...它来自哪里?我之前在文件中没有看到它,也没有导入它(还是它)?
第二行包含utf8变量(对吗?),但带有*我不知道的修饰符。变量来自哪里?星形修饰剂的作用是什么?
很抱歉遇到这样的问题,但是在这一点上,我无法深入研究最复杂的语言之一的文档,即c ++。
utf8不是函数,而是变量。片段(isolate, result)是传递给其构造函数的参数。
可以将其重写为如下功能相同,并且以JavaScript程序员更熟悉的方式进行重写:
auto utf8 = v8::String::Utf8Value(isolate, result);
Run Code Online (Sandbox Code Playgroud)
其中,auto推断变量的类型。
至于*in *utf8,其含义将取决于实现。*作为前缀运营商可以给用户定义的意义,当然,通常它的语义“触角伸向并获得价值”与原始指针之类的东西std::unique_ptr和std::optional。我v8个人不熟悉。您应该在该类型的*运算符上查找文档v8::String::Utf8Value,以确切了解其功能。
您还应该非常清楚C ++需要花费很长时间来学习,并且容易被误解或做错了事情。如果您想学习C ++,我建议您阅读一本好书,以获得基础的理解。
| 归档时间: |
|
| 查看次数: |
66 次 |
| 最近记录: |