首页 > 解决方案 > TypeScript Record 类型,C++ 等效

问题描述

下面的 TypeScript 段落定义了一个对象类型列表和一组与字符串匹配的函数,以确定应该将哪个标签分配给字符串。

enum m {
  a,
  b,
  c
}

type obj = {
  source: string,
  type: m
}

const n: Record<m, (char: string) => boolean> = {
  [m.a](char: string) => false,
  [m.b](char: string) => false,
  [m.c](char: string) => false,
}

我的目标是使用此代码进行词法分析,并且为了提高速度,我想使用 C++,但是由于我对它很陌生,我不知道如何将它翻译成 C++。如果可能的话,我希望尽可能接近翻译,因为这有助于我更容易理解代码在做什么。

我尝试使用以下代码段来实现相同的行为,但我远没有足够的经验来解决除此之外的任何事情。

bool fitsM(m type, std::string source) {
  if (type === m::a)
    return false; // do some checks here
  else if (type == m::b)
    return false; // more checks
  else if (type == m::c)
    return false; // yet more checks
  else
    return false;
}

显然,这将起作用,但是,如前所述,我正在寻找一种更类似于打字稿方法的方法。

谢谢你的帮助

标签: c++typescripttypesenums

解决方案


推荐阅读