用JavaScript(ES6)编写此代码最快的方法是什么?
另一个问题没有答案(Enums in Javascript with ES6)。
在c ++中,我将只使用将优化为int
的枚举,因此它基本上只是整数常量的盟友。
struct Market {
enum TypeGenerator { NONE, LINER, GBM };
TypeGenerator movement_type;
void update() {
if (movement_type == TypeGenerator::NONE) {
// ..
} else if (movement_type == TypeGenerator::LINER) {
// ..
} else {
// ..
}
}
};
int main() {
Market market;
market.movement_type = Market::TypeGenerator::NONE;
while (true) {
market.update();
}
}
另一方面,在JS中,枚举是字典,因此,每个比较都应该调用字典结构(哈希表或具有昂贵调用的其他结构),因此出于优化的原因,我应该这样做:
class Market {
static TYPE_NONE = "none";
static TYPE_LINER = "liner";
static TYPE_GBM = "gbm";
static TYPE_HISTORICAL = "historical";
movement_type: string;
constructor(movement_type: string = Market.TYPE_NONE) {
this.movement_type = movement_type;
}
update() {
if (this.movement_type === Market.TYPE_NONE) {
//
} else if (this.movement_type === Market.TYPE_LINER) {
//
} else if (this.movement_type === Market.TYPE_GBM) {
//
} ... etc
}
}
如果我正确理解,将字符串更改为数字不会对性能产生任何影响。在c ++中,有没有更好的美丽方式来做到这一点?