Node.js 中使用 C++ 扩展打印字符串数组
在 Node.js 中,可以使用 C++ 扩展来打印字符串数组。以下是一个示例:
#include <node.h>
namespace demo {
  using v8::FunctionCallbackInfo;
  using v8::Isolate;
  using v8::Local;
  using v8::Object;
  using v8::String;
  using v8::Value;
  using v8::Array;
  void PrintArray(const FunctionCallbackInfo<Value>& args) {
    Isolate* isolate = args.GetIsolate();
    // 检查参数数量
    if (args.Length() < 1) {
      isolate->ThrowException(
          Exception::TypeError(
              String::NewFromUtf8(isolate, '需要一个参数')));
      return;
    }
    // 检查参数类型
    if (!args[0]->IsArray()) {
      isolate->ThrowException(
          Exception::TypeError(
              String::NewFromUtf8(isolate, '参数必须是一个数组')));
      return;
    }
    // 获取参数值
    Local<Array> arr = Local<Array>::Cast(args[0]);
    // 遍历数组并打印每个元素
    for (uint32_t i = 0; i < arr->Length(); i++) {
      Local<Value> val = arr->Get(i);
      String::Utf8Value utf8(val);
      printf("%s\n", *utf8);
    }
  }
  void Init(Local<Object> exports) {
    NODE_SET_METHOD(exports, "printArray", PrintArray);
  }
  NODE_MODULE(addon, Init)
}  // namespace demo
在上面的示例中,我们定义了一个名为 PrintArray 的函数,它接受一个数组作为参数,并遍历该数组以打印每个元素。然后,我们将该函数导出到 Node.js 中,以便可以在 JavaScript 代码中使用。在 JavaScript 中,我们可以像这样调用该函数:
const addon = require('./build/Release/addon.node');
addon.printArray(['hello', 'world', 'node.js']);
运行上面的代码将输出以下内容:
hello
world
node.js
原文地址: https://www.cveoy.top/t/topic/oB7S 著作权归作者所有。请勿转载和采集!