2013-05-27 2 views
1

У меня есть массив в TTCN-3, который я хочу использовать команду перестановка on. Это обычно делается так:Как использовать перестановку в массиве произвольного размера в TTCN-3?

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

В результате, когда я ожидаю, что результат будет туАггау, порядок элементов не имеет значения.

Однако для этого требуется жесткое кодирование фактических значений в массиве, например, выше, где я конкретно указываю, какие значения массива я хочу присутствовать. Я сейчас в ситуации, когда у меня есть массив, который я из кода не знаю. Я могу найти размер моего массива с

sizeof(myArray); 

так, если я мог бы использовать это значение, которое я получаю во время выполнения, чтобы определить, как перестановка должна быть сделана, что было бы здорово. То, что я хочу сделать что-то вроде этого

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

где п размер массива, который я не знаю, из кода.

ответ

2

В вашем специальном случае, возможно, «набор» будет желаемой конструкцией. Набор значений соответствует списку одинаковых значений в любом порядке.

Тем не менее, для языка TTCN-3 существует запрос обработанного изменения (CR6088), расширяющий BNF для поддержки динамических списков в качестве параметров для надмножества, подмножества, перестановки и дополнения.

CR был принят и будет опубликован в новом выпуске TTCN-3 4.5.1 (подробности см. В разделе B.1.3.3). Стандарт 5.1.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

Смежные вопросы