Здравствуйте, я новичок в ada, и я пытаюсь создать какой-то неограниченный массив, и я не могу понять, как это сделать в ada.Ada unconstrained type
package data_puzzle is
type rotation is private;
type map(x_l,y_l,z_l : Natural) is private;
type valid_rotations is private;
private
type rotation is array(1..3) of Natural;
type map(x_l,y_l,z_l : Natural) is record
struct : Structure(x_l,y_l,z_l);
rot : rotation;
end record;
type valid_rotations is array(1..24) of map; --how can I make this row work?
end data_puzzle;
структура выглядит следующим образом
type structure(x_l,y_l,z_l : Natural) is record
structure : xyz(1..x_l,1..y_l,1..z_l);
X : Natural := x_l;
Y : Natural := y_l;
Z : Natural := z_l;
end record;
В принципе у меня есть карта с поворотами и данных. Затем я хочу сохранить все разные вращения в списке размером 24. Единственное решение, которое у меня есть сейчас, это инициировать Тип valid_rotations - это массив (1..24) карты (x, y, z), тогда он работает. Но я не хочу так начинать, потому что я не знаю, какой размер будет в тот момент.
Cheers!
Сложно предположить, что 'type structure' имеет компонент с именем' structure'! Кроме того, мне интересно, почему «структура типа» имеет компоненты 'X',' Y', 'Z', инициализированные значением соответствующего дискриминанта, когда вы можете просто получить доступ к дискриминанту? –