在说什么之前,请让我明确说明这个问题不是特定于语言的,而是我从事口译工作的一部分。
假设我们有一个值类型的枚举。因此,值可以是:
SV,// stringValue
IV,// integerValue
AV,// arrayValue
etc,etc
然后假设我们有一个函数 F ,该函数采用以下参数组合之一:
[
[SV],[SV,IV],[AV]
]
现在,该函数被调用,我们计算传递的值,并获取其类型。假设我们得到[XV,YV]
。
问题是:
检查传递的值是否被允许的最最有效方式是什么?
(原始解释器是用Nim编写的,所以可以说我们可以在接受的值数组的数组中查找值数组,例如:accepted.contains(passed)
-但这效率不高)
P.S。 ^尽管我也探讨了使用位掩码的选项,但我目前正在这样做。但是,我似乎看不出有什么帮助,因为订单也起着重要的作用。