函数和变量从哪里来?

Where did the function and the variable come from?

对不起,我是 JavaScript 和 TypeScript 专家,不是 C++ 专家。

但是 JS 引擎 V8 是用 c++ 编写的,这里是 there:

的一段代码
// Convert the result to an UTF8 string and print it.
v8::String::Utf8Value utf8(isolate, result);
printf("%s\n", *utf8);

上面的代码有两行。 第一行包含 utf8 函数...它来自哪里?我之前没有在文件中看到它并且它没有被导入(或者是)?

第二行包含 utf8 变量(对吗?),尽管带有我不知道的 * 修饰符。变量从何而来?星号修饰符的作用是什么?

很抱歉提出此类问题,但此时我无法深入研究最复杂的语言之一的文档,即 c++...

utf8不是一个函数,而是一个变量。片段 (isolate, result) 是传递给其构造函数的 参数

这可以重写如下,以实现功能上的相同,并且采用 JavaScript 程序员更熟悉的方式:

auto utf8 = v8::String::Utf8Value(isolate, result);

其中 auto 推断变量的类型。

至于*utf8中的*,其含义将取决于实现。 * 作为前缀运算符可以赋予 user-defined 含义,尽管它通常具有 "reach into and get the value from," 的语义,就像原始指针和 std::unique_ptrstd::optional 之类的东西一样. 我个人不熟悉 v8。您应该查找有关 v8::String::Utf8Value 类型的 * 运算符的文档,以确切了解它的作用。

你也应该很清楚,C++ 需要很长时间来学习,而且很容易被误解或做错事。如果您想致力于学习 C++,我建议您阅读 good C++ book 以获得基本的理解。