2013-05-27 24 views
1

我在TTCN-3中有一个数组,我想用命令排列。这通常是做过这样的:如何在TTCN-3中对任意大小的数组使用排列?

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

的结果是,当我希望得到的结果是myArray的,元素的顺序并不重要。

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

sizeof(myArray); 

所以,如果我可以使用该值,我在运行时到达指定排列应该怎么做,这将是伟大的发现我的数组的大小。我想做到的是这样的事情

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

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

回答

2

在你的特殊情况下,“一组”可能是所需的结构。一组值以任意顺序匹配相同值的列表。

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

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

请找到实例(从标准文档)下面,显示由版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} 

最好的问候,
波格丹

+0

“设置”确实解决了我直接的问题。非常感谢! – Helena

相关问题