如何在TTCN-3中使用任意大小的数组进行排列?

时间:2013-05-27 13:07:10

标签: arrays permutation ttcn

我在TTCN-3中有一个数组,我想使用命令 permutation 。这通常是这样做的:

myArray := { permutation( myArray[0], myArray[1], myArray[2] ) };

结果是,当我期望结果为myArray时,元素的顺序无关紧要。

然而,这需要对数组中的实际值进行硬编码,如上所述,其中我具体说明排列我想要的数组的值。我现在处于一种情况,我有一个数组,我从代码中不知道大小。我可以用

找到我的数组的大小
sizeof(myArray);

所以如果我可以使用我在运行时获得的值来指定排列应该如何完成,那就太好了。我想要完成的是这样的事情

myArray := { permutation( myArray[0], ... , myArray[n] ) };

其中n是数组的大小,我从代码中不知道。

1 个答案:

答案 0 :(得分:2)

在您的特殊情况下,可能是“一组”将是所需的构造。一组值按任何顺序匹配相同值的列表。

尽管如此,(CR6088)处理了TTCN-3语言的处理变更请求,扩展了BNF以支持动态列表作为超集,子集,置换和补充的参数。

CR被接受并将在新的TTCN-3版本4.5.1中发布(详情请参阅B.1.3.3节)。应在http://www.ttcn-3.org/提供4.5.1 TTCN-3核心语言标准。

请在下面找到示例(来自标准文档),该示例显示了版本4.5.1所定义的用法:

type record of integer RoI;
template RoI t_RoI1 := {1, 2, *};
template RoI t_RoI2 := {permutation(0, all from t_RoI1), 4, 5}; 
// results in {permutation(0, 1, 2, *), 4, 5}

最好的问候,
波格丹