2013-05-27 56 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

相關問題