我在TTCN-3中有一个数组,我想使用命令 permutation 。这通常是这样做的:
myArray := { permutation( myArray[0], myArray[1], myArray[2] ) };
结果是,当我期望结果为myArray时,元素的顺序无关紧要。
然而,这需要对数组中的实际值进行硬编码,如上所述,其中我具体说明排列我想要的数组的值。我现在处于一种情况,我有一个数组,我从代码中不知道大小。我可以用
找到我的数组的大小sizeof(myArray);
所以如果我可以使用我在运行时获得的值来指定排列应该如何完成,那就太好了。我想要完成的是这样的事情
myArray := { permutation( myArray[0], ... , myArray[n] ) };
其中n是数组的大小,我从代码中不知道。
答案 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}
最好的问候,
波格丹