У меня есть вектор формы (x, y, x), представляющий координаты. Я хочу иметь возможность сделать что-то вроде (x, y, z) + (x2, y2, z2), чтобы создать новый набор координат. Ада говорит, что не может использовать «+» для составных типов, но, конечно же, я могу это сделать?
Как добавить векторы в Аде
Ответы (2)
Если у тебя есть
type Vector is record
X : Float;
Y : Float;
Z : Float;
end record;
вы можете определить +
как
function "+" (L, R : Vector) return Vector is
(L.X + R.X, L.Y + R.Y, L.Z + R.Z);
Будьте осторожны, когда вы определяете -
аналогично использованию -
повсюду! эту ошибку очень трудно заметить.
person
Simon Wright
schedule
18.09.2020
Если вы определяете свои векторы так, чтобы они содержали элементы типа с плавающей запятой, вы можете использовать общий пакет Ada.Numerics.Generic_Real_Arrays. Этот пакет описан в разделе G.3.1 Справочного руководства по языку Ада.
Если вы хотите, чтобы ваши векторы содержали элементы типа комплексных чисел, вы можете использовать общий пакет, описанный в разделе G.3.2 Комплексные векторы и матрицы.
Если вы хотите использовать целочисленные типы в качестве векторных компонентов, вы можете написать функцию + для вашего целочисленного векторного типа.
person
Jim Rogers
schedule
18.09.2020
+
к составным типам, если вы правильно его определите. - person Keith Thompson   schedule 18.09.2020