首页 > 解决方案 > 根据给定的约束验证函数参数

问题描述

在说什么之前,请让我明确表示这个问题不是特定于语言的,而是我在口译员工作的一部分。

假设我们有一个 Value 类型的枚举。所以一个值可以是:

SV, // stringValue
IV, // integerValue
AV, // arrayValue
etc, etc

然后假设我们有一个函数F,它采用以下参数组合之一:

[
   [SV],
   [SV,IV],
   [AV]
]

现在,调用该函数,我们计算传递的值,并获取它们的类型。假设我们得到[XV,YV].

问题是:

检查是否允许传递的值的最有效方法是什么?

(原始解释器是用 Nim 编写的,因此可以说我们可以在接受的值数组的数组中查找值数组,例如:accepted.contains(passed)-但这不是有效的)


PS ^ 这就是我目前正在做的事情,尽管我也探索了使用位掩码的选项。但是,我看不出它有什么帮助,因为顺序也很重要。

标签: c++cvalidationargumentsnim-lang

解决方案


推荐阅读