【问题标题】:Looking for way to create a Enum struct with ES2018寻找使用 ES2018 创建 Enum 结构的方法
【发布时间】:2019-02-18 15:24:06
【问题描述】:

使用 ES2018 是否有更强大的方法来创建此主题列表(我想要的是自动生成的数字)。

const Topics = {
    NullTopic: 0,
    simActorStateTest: 1,
    navActorStateTest: 2,
    simTelemetryVenom11: 3,
    navTelemetryVenom11: 4,
    simTelemetryVenom12: 5,
    navTelemetryVenom12: 6,
    scenarioStart: 7,
    scenarioEnd: 8,
}

【问题讨论】:

  • 我会写一个函数来接受一个选择数组并为你填充一个对象。
  • 看看this
  • 或者在你可以使用整数的时候不要使用use symbols(也可以是here
  • 它正在与一个在 Google FlatBuffer 中发送整数的 C++ 程序进行通信。
  • ["string1", "string2", "string3"].reduce((r, s, i) => (r[s] = i, r), {})

标签: javascript


【解决方案1】:
var i =0;
const Topics = {
    NullTopic: i++,
    simActorStateTest: i++,
    navActorStateTest: i++,
    simTelemetryVenom11: i++,
    navTelemetryVenom11: i++,
    simTelemetryVenom12: i++,
    navTelemetryVenom12: i++,
    scenarioStart: i++,
    scenarioEnd: i++
}

【讨论】:

  • 好吧,我确定我之前尝试过这个,但 NodeJS (10.4) 出现了某种错误,但无论如何这对我来说现在很好@dustytrash
  • 如果您将其序列化,然后以修改后的结构反序列化,这可能会产生问题。例如,如果您切换两个键,反序列化的对象也会切换值。然而,OP 的版本有同样的问题,我没有看到一个简单的解决方案。 Java 使用 serialVersionUID 处理此问题。
猜你喜欢
  • 2014-01-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多