Why cant I use c++ syntax on Node.JS terminal?
我一直想知道为什么我不能在No.js终端上使用C++语法。
例如,V8是一个实现ECMAScript的JavaScript引擎。No.js本身是一个C++程序,它告诉V8引擎使用它的函数。因此,这些函数是编写C++代码的,因此这个应用程序应该能够接受C++本地语法。意思是,如果我要在C语言的终端中输入C++代码,那么这个终端应该能够把这些语法传递给内核中的C++模块并成功输出。但相反,它给出了一个:
1 2 3 4 5 6 7 8 9 10 11 | SyntaxError: Unexpected identifier at Object.exports.createScript (vm.js:24:10) at REPLServer.defaultEval (repl.js:236:25) at bound (domain.js:280:14) at REPLServer.runBound [as eval] (domain.js:293:12) at REPLServer. (repl.js:441:10) at emitOne (events.js:101:20) at REPLServer.emit (events.js:188:7) at REPLServer.Interface._onLine (readline.js:224:10) at REPLServer.Interface._line (readline.js:566:8) at REPLServer.Interface._ttyWrite (readline.js:843:14) |
我只是在寻找一个清晰的解释,这两种语言是如何被抽象的,尽管Node.js是在C++的基础上编写的。
仅仅因为一个程序是用C++编写的,并不意味着它能解释C++代码。你希望这个程序在运行C++时能理解C++代码吗?
1 2 3 4 5 6 7 8 9 10 | #include <iostream> int main() { std::string line; while (std::getline(std::cin, line)) { std::cout << line << ' '; } } |
节点和V8是用C++编写的,但它们的工作是解释JavaScript代码。它们不会运行任何C++代码,就像C++编译器不会编译任何JavaScript代码一样。